QVnc: clip requested screen region to available screen image
Avoid potential oob memory access. Pick-to: 6.1 6.0 5.15 5.12 Fixes: QTBUG-91770 Change-Id: I34fff1cf8dec5275572a027288b0e8310359d9f8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
This commit is contained in:
parent
bb8fc324d1
commit
c494c1e875
@ -477,6 +477,9 @@ void QRfbRawEncoder::write()
|
||||
// server->screen()->geometry().height());
|
||||
// }
|
||||
|
||||
const QImage screenImage = client->server()->screenImage();
|
||||
rgn &= screenImage.rect();
|
||||
|
||||
const auto rectsInRegion = rgn.rectCount();
|
||||
|
||||
{
|
||||
@ -492,8 +495,6 @@ void QRfbRawEncoder::write()
|
||||
if (rectsInRegion <= 0)
|
||||
return;
|
||||
|
||||
const QImage screenImage = client->server()->screenImage();
|
||||
|
||||
for (const QRect &tileRect: rgn) {
|
||||
const QRfbRect rect(tileRect.x(), tileRect.y(),
|
||||
tileRect.width(), tileRect.height());
|
||||
|
Loading…
Reference in New Issue
Block a user