From e22bd239c046014652a3487f542f2ab7b34f7a62 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sat, 20 Feb 2016 01:52:25 +0100 Subject: avformat/mov: do not leak memory on ffio_read_size failure Reviewed-by: Michael Niedermayer Signed-off-by: Marton Balint --- libavformat/mov.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 248a155e9b..043f4a9dbc 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -3178,6 +3178,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; @@ -3189,7 +3190,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; @@ -3219,7 +3219,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; } @@ -3246,7 +3246,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) -- cgit v1.2.3