matroskaenc: check cue point validity before reallocation
authorJanne Grunau <janne-libav@jannau.net>
Tue, 9 Oct 2012 12:54:01 +0000 (14:54 +0200)
committerJanne Grunau <janne-libav@jannau.net>
Tue, 9 Oct 2012 13:39:05 +0000 (15:39 +0200)
Prevents memory leak and possible access to freed memory.
Fixes CID605744.

libavformat/matroskaenc.c

index 3e32943..b37d10c 100644 (file)
@@ -368,13 +368,13 @@ static int mkv_add_cuepoint(mkv_cues *cues, int stream, int64_t ts, int64_t clus
 {
     mkv_cuepoint *entries = cues->entries;
 
+    if (ts < 0)
+        return 0;
+
     entries = av_realloc(entries, (cues->num_entries + 1) * sizeof(mkv_cuepoint));
     if (entries == NULL)
         return AVERROR(ENOMEM);
 
-    if (ts < 0)
-        return 0;
-
     entries[cues->num_entries  ].pts = ts;
     entries[cues->num_entries  ].tracknum = stream + 1;
     entries[cues->num_entries++].cluster_pos = cluster_pos - cues->segment_offset;