avcodec/dvdsubdec: Fix runtime error: left shift of 242 by 24 places cannot be repres...
authorMichael Niedermayer <michael@niedermayer.cc>
Fri, 5 May 2017 00:51:13 +0000 (02:51 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 5 May 2017 02:25:07 +0000 (04:25 +0200)
Fixes: 1080/clusterfuzz-testcase-5353236754071552

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/dvdsubdec.c

index 4e9c058..e18113c 100644 (file)
@@ -60,7 +60,7 @@ static void yuv_a_to_rgba(const uint8_t *ycbcr, const uint8_t *alpha, uint32_t *
         cb = *ycbcr++;
         YUV_TO_RGB1_CCIR(cb, cr);
         YUV_TO_RGB2_CCIR(r, g, b, y);
-        *rgba++ = (*alpha++ << 24) | (r << 16) | (g << 8) | b;
+        *rgba++ = ((unsigned)*alpha++ << 24) | (r << 16) | (g << 8) | b;
     }
 }