avcodec/pgssubdec: Fix left shift of 255 by 24 places cannot be represented in type int
authorMichael Niedermayer <michael@niedermayer.cc>
Fri, 4 Dec 2015 20:38:12 +0000 (21:38 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 4 Dec 2015 20:39:14 +0000 (21:39 +0100)
Fixes: b293a6479bb4b5286cff24d356bfd955/asan_generic_225c3c9_7819_cc526b657450c6cdef1371b526499626.mkv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/pgssubdec.c

index 61dc2ad..07a2a78 100644 (file)
@@ -33,7 +33,7 @@
 #include "libavutil/imgutils.h"
 #include "libavutil/opt.h"
 
-#define RGBA(r,g,b,a) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))
+#define RGBA(r,g,b,a) (((unsigned)(a) << 24) | ((r) << 16) | ((g) << 8) | (b))
 #define MAX_EPOCH_PALETTES 8   // Max 8 allowed per PGS epoch
 #define MAX_EPOCH_OBJECTS  64  // Max 64 allowed per PGS epoch
 #define MAX_OBJECT_REFS    2   // Max objects per display set