[FFmpeg-cvslog] rtpdec_asf: fix memleak

Michael Niedermayer git at videolan.org
Wed Sep 7 16:59:59 CEST 2011


ffmpeg | branch: release/0.7 | Michael Niedermayer <michaelni at gmx.at> | Wed Sep  7 16:48:49 2011 +0200| [61f55565fb96158a70ddc56c9e44312ffbd3cce5] | committer: Michael Niedermayer

rtpdec_asf: fix memleak

Based on a suggestion by Ronald S. Bultje
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit a2b66a366d7d9d7dacc217601b5e4406624f91ea)

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

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

diff --git a/libavformat/rtpdec_asf.c b/libavformat/rtpdec_asf.c
index 384aeb2..643ea7a 100644
--- a/libavformat/rtpdec_asf.c
+++ b/libavformat/rtpdec_asf.c
@@ -233,10 +233,14 @@ static int asfrtp_parse_packet(AVFormatContext *s, PayloadContext *asf,
 
                 int cur_len = start_off + len_off - off;
                 int prev_len = out_len;
+                void *newbuf;
                 out_len += cur_len;
-                asf->buf = av_realloc(asf->buf, out_len);
-                if(!asf->buf || FFMIN(cur_len, len - off)<0)
+                if(FFMIN(cur_len, len - off)<0)
                     return -1;
+                newbuf = av_realloc(asf->buf, out_len);
+                if(!newbuf)
+                    return -1;
+                asf->buf= newbuf;
                 memcpy(asf->buf + prev_len, buf + off,
                        FFMIN(cur_len, len - off));
                 avio_skip(pb, cur_len);



More information about the ffmpeg-cvslog mailing list