]> granicus.if.org Git - imagemagick/commitdiff
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10410
authorCristy <urban-warrior@imagemagick.org>
Sun, 23 Sep 2018 17:40:24 +0000 (13:40 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sun, 23 Sep 2018 17:40:24 +0000 (13:40 -0400)
coders/dcm.c

index 8a431c73c325315b9c3abff7d611c9157fff656a..84cfb0017a68cf75e40b88ac24c87a91342fb9b5 100644 (file)
@@ -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);