mirror of
https://invent.kde.org/frameworks/kimageformats.git
synced 2025-11-15 00:12:44 -05:00
XCF: Fix OSS Fuzz issue 42527849
Fixes integer overflow when the value is -INT_MAX-1
This commit is contained in:
committed by
Christoph Cullmann
parent
1cb294545f
commit
348ddce987
@ -1305,21 +1305,22 @@ bool XCFImageFormat::loadLayerProperties(QDataStream &xcf_io, Layer &layer)
|
|||||||
case PROP_COMPOSITE_SPACE:
|
case PROP_COMPOSITE_SPACE:
|
||||||
property >> layer.compositeSpace;
|
property >> layer.compositeSpace;
|
||||||
if (layer.compositeSpace < 0) {
|
if (layer.compositeSpace < 0) {
|
||||||
layer.compositeSpace = GimpColorSpace(-layer.compositeSpace);
|
layer.compositeSpace = GimpColorSpace(layer.compositeSpace == std::numeric_limits<qint32>::lowest() ? 0 : -layer.compositeSpace);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_COMPOSITE_MODE:
|
case PROP_COMPOSITE_MODE:
|
||||||
property >> layer.compositeMode;
|
property >> layer.compositeMode;
|
||||||
if (layer.compositeMode < 0) {
|
if (layer.compositeMode < 0) {
|
||||||
layer.compositeMode = XCFImageFormat::GimpCompositeMode(-layer.compositeMode);
|
layer.compositeMode =
|
||||||
|
XCFImageFormat::GimpCompositeMode(layer.compositeMode == std::numeric_limits<qint32>::lowest() ? 0 : -layer.compositeMode);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_BLEND_SPACE:
|
case PROP_BLEND_SPACE:
|
||||||
property >> layer.blendSpace;
|
property >> layer.blendSpace;
|
||||||
if (layer.blendSpace) {
|
if (layer.blendSpace < 0) {
|
||||||
layer.blendSpace = GimpColorSpace(-layer.blendSpace);
|
layer.blendSpace = GimpColorSpace(layer.blendSpace == std::numeric_limits<qint32>::lowest() ? 0 : -layer.blendSpace);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user