[FFmpeg-cvslog] avformat/aviobuf: Return better error codes
Andreas Rheinhardt
git at videolan.org
Thu Jun 11 05:03:29 EEST 2020
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Sun May 24 04:36:05 2020 +0200| [7be9b0bb38f415d06d06a10844d181b0a8421c47] | committer: Andreas Rheinhardt
avformat/aviobuf: Return better error codes
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7be9b0bb38f415d06d06a10844d181b0a8421c47
---
libavformat/aviobuf.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index 85f6f06de0..941e82ffe4 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -708,7 +708,7 @@ int avio_read_partial(AVIOContext *s, unsigned char *buf, int size)
int len;
if (size < 0)
- return -1;
+ return AVERROR(EINVAL);
if (s->read_packet && s->write_flag) {
len = read_packet_wrapper(s, buf, size);
@@ -1289,7 +1289,7 @@ static int dyn_buf_write(void *opaque, uint8_t *buf, int buf_size)
/* reallocate buffer if needed */
new_size = (unsigned)d->pos + buf_size;
if (new_size < d->pos || new_size > INT_MAX)
- return -1;
+ return AVERROR(ERANGE);
if (new_size > d->allocated_size) {
unsigned new_allocated_size = d->allocated_size ? d->allocated_size
: new_size;
@@ -1336,8 +1336,10 @@ static int64_t dyn_buf_seek(void *opaque, int64_t offset, int whence)
offset += d->pos;
else if (whence == SEEK_END)
offset += d->size;
- if (offset < 0 || offset > 0x7fffffffLL)
- return -1;
+ if (offset < 0)
+ return AVERROR(EINVAL);
+ if (offset > INT_MAX)
+ return AVERROR(ERANGE);
d->pos = offset;
return 0;
}
@@ -1348,7 +1350,7 @@ static int url_open_dyn_buf_internal(AVIOContext **s, int max_packet_size)
unsigned io_buffer_size = max_packet_size ? max_packet_size : 1024;
if (sizeof(DynBuffer) + io_buffer_size < io_buffer_size)
- return -1;
+ return AVERROR(ERANGE);
d = av_mallocz(sizeof(DynBuffer) + io_buffer_size);
if (!d)
return AVERROR(ENOMEM);
@@ -1372,7 +1374,7 @@ int avio_open_dyn_buf(AVIOContext **s)
int ffio_open_dyn_packet_buf(AVIOContext **s, int max_packet_size)
{
if (max_packet_size <= 0)
- return -1;
+ return AVERROR(EINVAL);
return url_open_dyn_buf_internal(s, max_packet_size);
}
More information about the ffmpeg-cvslog
mailing list