diff --git a/libavformat/brstm.c b/libavformat/brstm.c index a4db35a9be..0a874d374c 100644 --- a/libavformat/brstm.c +++ b/libavformat/brstm.c @@ -266,19 +266,18 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) (b->current_block - 1), 4 * codec->channels); ret = avio_read(s->pb, dst, size); - if (ret < 0) { + if (ret != size) av_free_packet(pkt); - return ret; - } pkt->duration = samples; } else { ret = av_get_packet(s->pb, pkt, size); - if (ret < 0) - return ret; } pkt->stream_index = 0; + if (ret != size) + ret = AVERROR(EIO); + return ret; }