]> git.sesse.net Git - ffmpeg/commitdiff
segafilm: fail earlier in case theres not enough bytestream left for a
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 25 Dec 2011 03:49:23 +0000 (04:49 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 25 Dec 2011 03:49:23 +0000 (04:49 +0100)
audio packet.
This prevents a potentially large memory allocation.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/segafilm.c

index 17b118a91c80fac3d31e1c1c93fe56b7ef1123ab..c2a163d9fcfab738d4d64693de0d6ecd6f650569 100644 (file)
@@ -30,6 +30,7 @@
 #include "libavutil/intreadwrite.h"
 #include "avformat.h"
 #include "internal.h"
+#include "avio_internal.h"
 
 #define FILM_TAG MKBETAG('F', 'I', 'L', 'M')
 #define FDSC_TAG MKBETAG('F', 'D', 'S', 'C')
@@ -264,6 +265,8 @@ static int film_read_packet(AVFormatContext *s,
         (film->audio_type != CODEC_ID_ADPCM_ADX)) {
         /* stereo PCM needs to be interleaved */
 
+        if (ffio_limit(pb, sample->sample_size) != sample->sample_size)
+            return AVERROR(EIO);
         if (av_new_packet(pkt, sample->sample_size))
             return AVERROR(ENOMEM);