[FFmpeg-devel] [PATCH 2/2] avformat/mov: do not leak memory on ffio_read_size failure
Marton Balint
cus at passwd.hu
Sat Feb 20 02:11:50 CET 2016
Signed-off-by: Marton Balint <cus at passwd.hu>
---
libavformat/mov.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 7d9a3f3..4150987 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -3177,6 +3177,7 @@ static int mov_read_custom(MOVContext *c, AVIOContext *pb, MOVAtom atom)
int64_t end = avio_tell(pb) + atom.size;
uint8_t *key = NULL, *val = NULL, *mean = NULL;
int i;
+ int ret = 0;
AVStream *st;
MOVStreamContext *sc;
@@ -3188,7 +3189,6 @@ static int mov_read_custom(MOVContext *c, AVIOContext *pb, MOVAtom atom)
for (i = 0; i < 3; i++) {
uint8_t **p;
uint32_t len, tag;
- int ret;
if (end - avio_tell(pb) <= 12)
break;
@@ -3218,7 +3218,7 @@ static int mov_read_custom(MOVContext *c, AVIOContext *pb, MOVAtom atom)
ret = ffio_read_size(pb, *p, len);
if (ret < 0) {
av_freep(p);
- return ret;
+ break;
}
(*p)[len] = 0;
}
@@ -3245,7 +3245,7 @@ static int mov_read_custom(MOVContext *c, AVIOContext *pb, MOVAtom atom)
av_freep(&key);
av_freep(&val);
av_freep(&mean);
- return 0;
+ return ret;
}
static int mov_read_meta(MOVContext *c, AVIOContext *pb, MOVAtom atom)
--
2.6.2
More information about the ffmpeg-devel
mailing list