[FFmpeg-cvslog] avformat/rtmpproto: fix rmtp packet leak in gen_connect()

Lidong Yan git at videolan.org
Mon Jun 16 02:43:57 EEST 2025


ffmpeg | branch: master | Lidong Yan <yldhome2d2 at gmail.com> | Sat Jun 14 16:33:50 2025 +0800| [b65fece0aa93d4c2898a3ce1e3de37ccbc87ec5e] | committer: Michael Niedermayer

avformat/rtmpproto: fix rmtp packet leak in gen_connect()

In libavformat/rtmpproto.c:gen_connect(), if check on string length
or check on codec fourcc failed, ff_rtmp_packet_create() allocated
data in pkt would leak. Add ff_rtmp_packet_destory before return error
code.

Signed-off-by: Lidong Yan <502024330056 at smail.nju.edu.cn>
Reviewed-by: Zhao Zhili <quinkblack at foxmail.com>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b65fece0aa93d4c2898a3ce1e3de37ccbc87ec5e
---

 libavformat/rtmpproto.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 846376e668..dd850f72ed 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -347,6 +347,7 @@ static int gen_connect(URLContext *s, RTMPContext *rt)
         if ((fourcc_str_len + 1) % 5 != 0) {
             av_log(s, AV_LOG_ERROR, "Malformed rtmp_enhanched_codecs, "
                    "should be of the form hvc1[,av01][,vp09][,...]\n");
+            ff_rtmp_packet_destroy(&pkt);
             return AVERROR(EINVAL);
         }
 
@@ -370,6 +371,7 @@ static int gen_connect(URLContext *s, RTMPContext *rt)
                     ff_amf_write_string(&p, fourcc);
             } else {
                     av_log(s, AV_LOG_ERROR, "Unsupported codec fourcc, %.*s\n", 4, fourcc_data);
+                    ff_rtmp_packet_destroy(&pkt);
                     return AVERROR_PATCHWELCOME;
             }
 



More information about the ffmpeg-cvslog mailing list