mirror of
https://invent.kde.org/frameworks/kimageformats.git
synced 2025-05-28 00:30:23 -04:00
xcf: fix oss-fuzz issue
May fix possible crash on QPainter.
This commit is contained in:
parent
63a9de758f
commit
99bb24803a
@ -2784,7 +2784,10 @@ void XCFImageFormat::copyLayerToImage(XCFImage &xcf_image)
|
||||
QPainter painter(&image);
|
||||
painter.setOpacity(layer.opacity / 255.0);
|
||||
painter.setCompositionMode(QPainter::CompositionMode_Source);
|
||||
painter.drawImage(x + layer.x_offset, y + layer.y_offset, layer.image_tiles[j][i]);
|
||||
if (x + layer.x_offset < MAX_IMAGE_WIDTH &&
|
||||
y + layer.y_offset < MAX_IMAGE_HEIGHT) {
|
||||
painter.drawImage(x + layer.x_offset, y + layer.y_offset, layer.image_tiles[j][i]);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -3184,7 +3187,10 @@ void XCFImageFormat::mergeLayerIntoImage(XCFImage &xcf_image)
|
||||
uint x = i * TILE_WIDTH;
|
||||
|
||||
QImage &tile = layer.image_tiles[j][i];
|
||||
painter.drawImage(x + layer.x_offset, y + layer.y_offset, tile);
|
||||
if (x + layer.x_offset < MAX_IMAGE_WIDTH &&
|
||||
y + layer.y_offset < MAX_IMAGE_HEIGHT) {
|
||||
painter.drawImage(x + layer.x_offset, y + layer.y_offset, tile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3233,7 +3239,10 @@ void XCFImageFormat::mergeLayerIntoImage(XCFImage &xcf_image)
|
||||
QPainter painter(&image);
|
||||
painter.setOpacity(layer.opacity / 255.0);
|
||||
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
|
||||
painter.drawImage(x + layer.x_offset, y + layer.y_offset, layer.image_tiles[j][i]);
|
||||
if (x + layer.x_offset < MAX_IMAGE_WIDTH &&
|
||||
y + layer.y_offset < MAX_IMAGE_HEIGHT) {
|
||||
painter.drawImage(x + layer.x_offset, y + layer.y_offset, layer.image_tiles[j][i]);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user