]> git.sesse.net Git - ffmpeg/commitdiff
avformat/rmdec: Fix potential crash on allocation failure
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Mon, 20 Jul 2020 20:44:42 +0000 (22:44 +0200)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sat, 19 Sep 2020 18:26:53 +0000 (20:26 +0200)
The RealMedia demuxer uses the priv_data of its streams to store a
structure containing an AVPacket. These packets are unreferenced in the
read_close function, yet said function simply presumed that the
priv_data has been successfully allocated. This implies that it mustn't
be called when an allocation of priv_data fails; but this can happen
since commit 35bbc1955a58ba74552c50d9161084644f00bbd3 if one has a
stream with multiple substreams (also exported as AVStream) and if
allocating the priv_data for one of these substreams fails.

This has been fixed by making sure that read_close can handle the case
in which priv_data has not been successfully allocated.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavformat/rmdec.c

index 6851b7e1f453e8be549424d1ea9b3c4948361ade..72b8dba741ee65db70bca82d1ee26f5b8a519d38 100644 (file)
@@ -115,6 +115,9 @@ RMStream *ff_rm_alloc_rmstream (void)
 
 void ff_rm_free_rmstream (RMStream *rms)
 {
+    if (!rms)
+        return;
+
     av_packet_unref(&rms->pkt);
 }