diff --git a/libavformat/rsd.c b/libavformat/rsd.c index b9098646f6..8eb9f901e1 100644 --- a/libavformat/rsd.c +++ b/libavformat/rsd.c @@ -22,6 +22,7 @@ #include "libavutil/intreadwrite.h" #include "avformat.h" #include "avio.h" +#include "avio_internal.h" #include "demux.h" #include "internal.h" @@ -131,9 +132,9 @@ static int rsd_read_header(AVFormatContext *s) return ret; for (i = 0; i < par->ch_layout.nb_channels; i++) { - if (avio_feof(pb)) - return AVERROR_EOF; - avio_read(s->pb, st->codecpar->extradata + 32 * i, 32); + ret = ffio_read_size(s->pb, st->codecpar->extradata + 32 * i, 32); + if (ret < 0) + return ret; avio_skip(s->pb, 8); } break;