summaryrefslogtreecommitdiff
path: root/ffmpeg/libavformat/iff.c
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg/libavformat/iff.c')
-rw-r--r--ffmpeg/libavformat/iff.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ffmpeg/libavformat/iff.c b/ffmpeg/libavformat/iff.c
index 1efc147..b5751c5 100644
--- a/ffmpeg/libavformat/iff.c
+++ b/ffmpeg/libavformat/iff.c
@@ -462,6 +462,10 @@ static int iff_read_packet(AVFormatContext *s,
buf = pkt->data;
bytestream_put_be16(&buf, 2);
ret = avio_read(pb, buf, iff->body_size);
+ if (ret<0) {
+ av_free_packet(pkt);
+ } else if (ret < iff->body_size)
+ av_shrink_packet(pkt, ret + 2);
} else {
av_assert0(0);
}
@@ -481,5 +485,5 @@ AVInputFormat ff_iff_demuxer = {
.read_probe = iff_probe,
.read_header = iff_read_header,
.read_packet = iff_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
+ .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK,
};