avformat/avc: return an error in ff_isom_write_avcc if the buffer lenght is too small
authorJames Almer <jamrial@gmail.com>
Fri, 24 Nov 2017 22:42:50 +0000 (19:42 -0300)
committerJames Almer <jamrial@gmail.com>
Thu, 30 Nov 2017 03:17:41 +0000 (00:17 -0300)
Signed-off-by: James Almer <jamrial@gmail.com>
libavformat/avc.c

index 094a958..5232ed5 100644 (file)
@@ -105,7 +105,9 @@ int ff_avc_parse_nal_units_buf(const uint8_t *buf_in, uint8_t **buf, int *size)
 
 int ff_isom_write_avcc(AVIOContext *pb, const uint8_t *data, int len)
 {
-    if (len > 6) {
+    if (len <= 6)
+        return AVERROR_INVALIDDATA;
+
         /* check for H.264 start code */
         if (AV_RB32(data) == 0x00000001 ||
             AV_RB24(data) == 0x000001) {
@@ -157,7 +159,6 @@ int ff_isom_write_avcc(AVIOContext *pb, const uint8_t *data, int len)
         } else {
             avio_write(pb, data, len);
         }
-    }
     return 0;
 }