tools/ismindex: Keep count fields consistent with arrays in case of errors
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 6 Jan 2015 20:07:50 +0000 (21:07 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 6 Jan 2015 20:07:50 +0000 (21:07 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tools/ismindex.c

index 3e53046..d6386ac 100644 (file)
@@ -340,6 +340,7 @@ static int read_tfra(struct Tracks *tracks, int start_index, AVIOContext *f)
     track->chunks  = avio_rb32(f);
     track->offsets = av_mallocz_array(track->chunks, sizeof(*track->offsets));
     if (!track->offsets) {
+        track->chunks = 0;
         ret = AVERROR(ENOMEM);
         goto fail;
     }
@@ -448,10 +449,11 @@ fail:
 
 static int get_private_data(struct Track *track, AVCodecContext *codec)
 {
-    track->codec_private_size = codec->extradata_size;
+    track->codec_private_size = 0;
     track->codec_private      = av_mallocz(codec->extradata_size);
     if (!track->codec_private)
         return AVERROR(ENOMEM);
+    track->codec_private_size = codec->extradata_size;
     memcpy(track->codec_private, codec->extradata, codec->extradata_size);
     return 0;
 }