pgssubdec: reset rle_data_len/rle_remaining_len on allocation error
authorAndreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Tue, 31 Jan 2017 00:59:38 +0000 (01:59 +0100)
committerDiego Biurrun <diego@biurrun.de>
Tue, 31 Jan 2017 08:35:54 +0000 (09:35 +0100)
The code relies on their validity and otherwise can try to access a NULL
object->rle pointer, causing segmentation faults.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
libavcodec/pgssubdec.c

index 886685b..a6a43ae 100644 (file)
@@ -297,8 +297,11 @@ static int parse_object_segment(AVCodecContext *avctx,
 
     av_fast_malloc(&object->rle, &object->rle_buffer_size, rle_bitmap_len);
 
-    if (!object->rle)
+    if (!object->rle) {
+        object->rle_data_len      = 0;
+        object->rle_remaining_len = 0;
         return AVERROR(ENOMEM);
+    }
 
     memcpy(object->rle, buf, buf_size);
     object->rle_data_len = buf_size;