From: Cristy Date: Sun, 23 Sep 2018 17:40:24 +0000 (-0400) Subject: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10410 X-Git-Tag: 7.0.8-13~90 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b68d087c0842404e89c6a467bb1fbdb13c45db03;p=imagemagick https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10410 --- diff --git a/coders/dcm.c b/coders/dcm.c index 8a431c73c..84cfb0017 100644 --- a/coders/dcm.c +++ b/coders/dcm.c @@ -2875,7 +2875,7 @@ static MagickBooleanType ReadDCMPixels(Image *image,DCMInfo *info, else if ((info->bits_allocated != 12) || (info->significant_bits != 12)) { - if (info->signed_data) + if (info->signed_data != 0) pixel_value=ReadDCMSignedShort(stream_info,image); else pixel_value=(int) ReadDCMShort(stream_info,image); @@ -2885,8 +2885,12 @@ static MagickBooleanType ReadDCMPixels(Image *image,DCMInfo *info, else { if ((i & 0x01) != 0) - pixel_value=(ReadDCMByte(stream_info,image) << 8) | - byte; + { + pixel_value=byte; + byte=ReadDCMByte(stream_info,image); + if (byte >= 0) + pixel_value|=(byte << 8); + } else { pixel_value=ReadDCMSignedShort(stream_info,image);