avformat/jacosubdec: Cleanup when avpriv_bprint_to_extradata() fails
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 25 Nov 2014 14:20:02 +0000 (15:20 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 25 Nov 2014 14:20:54 +0000 (15:20 +0100)
Fixes memleaks
Fixes: asan_heap-oob_4d2250_814_cov_2745172097_JACOsub_capability_tester.jss
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/jacosubdec.c

index 9a28870..1ca0055 100644 (file)
@@ -232,7 +232,7 @@ static int jacosub_read_header(AVFormatContext *s)
     /* general/essential directives in the extradata */
     ret = avpriv_bprint_to_extradata(st->codec, &header);
     if (ret < 0)
-        return ret;
+        goto fail;
 
     /* SHIFT and TIMERES affect the whole script so packet timing can only be
      * done in a second pass */
@@ -243,6 +243,9 @@ static int jacosub_read_header(AVFormatContext *s)
     ff_subtitles_queue_finalize(&jacosub->q);
 
     return 0;
+fail:
+    jacosub_read_close(s);
+    return ret;
 }
 
 static int jacosub_read_packet(AVFormatContext *s, AVPacket *pkt)