avcodec/parser: Check that the parser return code is valid
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 9 Jan 2015 12:02:44 +0000 (13:02 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 15 Jan 2015 19:58:58 +0000 (20:58 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/parser.c

index 2c03b7e5c53c137ad0124620be68da7a4cc6316d..aa25481ebc46ab44e281ba927ee00a6b510942a9 100644 (file)
@@ -23,6 +23,7 @@
 #include <stdint.h>
 #include <string.h>
 
+#include "libavutil/avassert.h"
 #include "libavutil/atomic.h"
 #include "libavutil/mem.h"
 
@@ -163,6 +164,7 @@ int av_parser_parse2(AVCodecParserContext *s, AVCodecContext *avctx,
     /* WARNING: the returned index can be negative */
     index = s->parser->parser_parse(s, avctx, (const uint8_t **) poutbuf,
                                     poutbuf_size, buf, buf_size);
+    av_assert0(index > -0x20000000); // The API does not allow returning AVERROR codes
     /* update the file pointer */
     if (*poutbuf_size) {
         /* fill the data for the current frame */