summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2020-10-31 10:29:56 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2020-11-04 23:30:53 +0100
commit66ca6d0fe8baf1453caaa5761fc0572665a75e78 (patch)
tree11f5a035d83ec54ce398ddd561ee61a0a9c21486
parent441fd1bd7d1110fc5c8291f25e429101bb190bd2 (diff)
libavformat/aviobuf: Forward error from avio_read in ffio_read_size()
Suggested-by: Andreas Rheinhardt Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavformat/aviobuf.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index 80a5a565a4..82c20cab52 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -686,9 +686,11 @@ int avio_read(AVIOContext *s, unsigned char *buf, int size)
int ffio_read_size(AVIOContext *s, unsigned char *buf, int size)
{
int ret = avio_read(s, buf, size);
- if (ret != size)
- return AVERROR_INVALIDDATA;
- return ret;
+ if (ret == size)
+ return ret;
+ if (ret < 0 && ret != AVERROR_EOF)
+ return ret;
+ return AVERROR_INVALIDDATA;
}
int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, const unsigned char **data)