diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-09-07 16:48:49 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-09-07 16:57:24 +0200 |
commit | 076a8dfd411b77cd0b993581daf7ed7a313f017f (patch) | |
tree | 614c1cf77898f3e80c88abdceb1a81fa45e02e08 | |
parent | a9a8e5ca99cead74c6c0c8ccf180634cb64301cd (diff) | |
download | ffmpeg-93a860b06186fee457c2af86942dac671e8988bd.tar.gz |
rtpdec_asf: fix memleakn0.8.3
Based on a suggestion by Ronald S. Bultje
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a2b66a366d7d9d7dacc217601b5e4406624f91ea)
-rw-r--r-- | 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 384aeb24f3..643ea7a5a0 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); |