segafilm: drop the "song and dance" for cinepak
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 7 Jan 2014 13:38:49 +0000 (14:38 +0100)
committerVittorio Giovara <vittorio.giovara@gmail.com>
Fri, 6 Nov 2015 20:55:15 +0000 (21:55 +0100)
This seems not to do anything any more since a long time, and removing
it avoids using uninitialized memory. Also change the error value
forwarding as done everywhere else.

Partly fixes: msan_uninit-mem_7fb7d24780d0_2744_R03T.CAK
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
libavformat/segafilm.c

index bbbf701..256c474 100644 (file)
@@ -280,18 +280,9 @@ static int film_read_packet(AVFormatContext *s,
     /* position the stream (will probably be there anyway) */
     avio_seek(pb, sample->sample_offset, SEEK_SET);
 
     /* position the stream (will probably be there anyway) */
     avio_seek(pb, sample->sample_offset, SEEK_SET);
 
-    /* do a special song and dance when loading FILM Cinepak chunks */
-    if ((sample->stream == film->video_stream_index) &&
-        (film->video_type == AV_CODEC_ID_CINEPAK)) {
-        pkt->pos= avio_tell(pb);
-        if (av_new_packet(pkt, sample->sample_size))
-            return AVERROR(ENOMEM);
-        avio_read(pb, pkt->data, sample->sample_size);
-    } else {
-        ret= av_get_packet(pb, pkt, sample->sample_size);
-        if (ret != sample->sample_size)
-            ret = AVERROR(EIO);
-    }
+    ret = av_get_packet(pb, pkt, sample->sample_size);
+    if (ret < 0)
+        return ret;
 
     pkt->stream_index = sample->stream;
     pkt->pts = sample->pts;
 
     pkt->stream_index = sample->stream;
     pkt->pts = sample->pts;