[FFmpeg-cvslog] wtvdec: prevent memory leak in get_tag()
Peter Ross
git at videolan.org
Mon Jan 7 16:55:20 CET 2013
ffmpeg | branch: master | Peter Ross <pross at xvid.org> | Tue Jan 8 01:48:13 2013 +1100| [a572cc8c7a0354d84156cfd1611dda8891f7c4db] | committer: Peter Ross
wtvdec: prevent memory leak in get_tag()
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a572cc8c7a0354d84156cfd1611dda8891f7c4db
---
libavformat/wtvdec.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c
index 3121269..139d2a4 100644
--- a/libavformat/wtvdec.c
+++ b/libavformat/wtvdec.c
@@ -448,15 +448,20 @@ done:
static void get_tag(AVFormatContext *s, AVIOContext *pb, const char *key, int type, int length)
{
- int buf_size = FFMAX(2*length, LEN_PRETTY_GUID) + 1;
- char *buf = av_malloc(buf_size);
- if (!buf)
- return;
+ int buf_size;
+ char *buf;
if (!strcmp(key, "WM/MediaThumbType")) {
avio_skip(pb, length);
return;
- } else if (type == 0 && length == 4) {
+ }
+
+ buf_size = FFMAX(2*length, LEN_PRETTY_GUID) + 1;
+ buf = av_malloc(buf_size);
+ if (!buf)
+ return;
+
+ if (type == 0 && length == 4) {
snprintf(buf, buf_size, "%"PRIi32, avio_rl32(pb));
} else if (type == 1) {
avio_get_str16le(pb, length, buf, buf_size);
More information about the ffmpeg-cvslog
mailing list