avcodec/dvbsub_parser: Fix potential pointer overflows
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 15 Mar 2015 17:20:58 +0000 (18:20 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 15 Mar 2015 19:26:08 +0000 (20:26 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/dvbsub_parser.c

index d15c891..f9fdb6a 100644 (file)
@@ -122,11 +122,11 @@ static int dvbsub_parse(AVCodecParserContext *s,
     {
         if (*p == 0x0f)
         {
-            if (p + 6 <= p_end)
+            if (6 <= p_end - p)
             {
                 len = AV_RB16(p + 4);
 
-                if (p + len + 6 <= p_end)
+                if (len + 6 <= p_end - p)
                 {
                     *poutbuf_size += len + 6;
 
@@ -136,7 +136,7 @@ static int dvbsub_parse(AVCodecParserContext *s,
             } else
                 break;
         } else if (*p == 0xff) {
-            if (p + 1 < p_end)
+            if (1 < p_end - p)
             {
                 av_dlog(avctx, "Junk at end of packet\n");
             }