mov: Free an earlier allocated array if allocating a new one
authorMartin Storsjö <martin@martin.st>
Mon, 13 Jan 2014 12:46:07 +0000 (14:46 +0200)
committerMartin Storsjö <martin@martin.st>
Wed, 15 Jan 2014 07:57:38 +0000 (09:57 +0200)
It could probably also be considered an error if the pointer isn't
null at this point, but then we might risk rejecting some
slightly broken files that we might have handled so far.

Sample-Id: 00000496-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/mov.c

index b7823bf..b5019f5 100644 (file)
@@ -1717,6 +1717,7 @@ static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom)
     if (entries >= UINT_MAX / sizeof(*sc->stts_data))
         return AVERROR(EINVAL);
 
+    av_free(sc->stts_data);
     sc->stts_data = av_malloc(entries * sizeof(*sc->stts_data));
     if (!sc->stts_data)
         return AVERROR(ENOMEM);