diff options
Diffstat (limited to 'ffmpeg/libavformat/iff.c')
| -rw-r--r-- | ffmpeg/libavformat/iff.c | 6 |
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, }; |
