[FFmpeg-cvslog] rtpenc: Fix memory leaks in the muxer open function

Martin Storsjö git at videolan.org
Mon Jun 18 20:25:38 CEST 2012


ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Sun Jun 17 18:18:16 2012 +0300| [e9ef88fbd299051df0bb8b344393c50cc1d159d8] | committer: Martin Storsjö

rtpenc: Fix memory leaks in the muxer open function

Also return a proper error code in these cases.

Signed-off-by: Martin Storsjö <martin at martin.st>

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

 libavformat/rtpenc.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c
index 71eeb7e..6752fb6 100644
--- a/libavformat/rtpenc.c
+++ b/libavformat/rtpenc.c
@@ -198,11 +198,11 @@ static int rtp_write_header(AVFormatContext *s1)
         /* max_header_toc_size + the largest AMR payload must fit */
         if (1 + s->max_frames_per_packet + n > s->max_payload_size) {
             av_log(s1, AV_LOG_ERROR, "RTP max payload size too small for AMR\n");
-            return -1;
+            goto fail;
         }
         if (st->codec->channels != 1) {
             av_log(s1, AV_LOG_ERROR, "Only mono is supported\n");
-            return -1;
+            goto fail;
         }
     case CODEC_ID_AAC:
         s->num_frames = 0;
@@ -216,6 +216,10 @@ defaultcase:
     }
 
     return 0;
+
+fail:
+    av_freep(&s->buf);
+    return AVERROR(EINVAL);
 }
 
 /* send an rtcp sender report packet */



More information about the ffmpeg-cvslog mailing list