diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2015-11-23 18:56:09 -0500 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2015-11-24 09:05:01 -0500 |
commit | 99cb833fc2d9874c62fffbcd3347fae660de0fe5 (patch) | |
tree | 3ba4707143e76ea076fb85eafa1d4b16650d6996 | |
parent | 823fa7004571cb8404ca5785f9fa6e85f0f9f3d3 (diff) | |
download | ffmpeg-99cb833fc2d9874c62fffbcd3347fae660de0fe5.tar.gz |
sgi: Correctly propagate meaningful error values
-rw-r--r-- | libavcodec/sgidec.c | 11 | ||||
-rw-r--r-- | libavcodec/sgienc.c | 4 |
2 files changed, 8 insertions, 7 deletions
diff --git a/libavcodec/sgidec.c b/libavcodec/sgidec.c index c827ff5559..6f93a3059e 100644 --- a/libavcodec/sgidec.c +++ b/libavcodec/sgidec.c @@ -229,13 +229,13 @@ static int decode_frame(AVCodecContext *avctx, if (s->bytes_per_channel != 1 && s->bytes_per_channel != 2) { av_log(avctx, AV_LOG_ERROR, "wrong channel number\n"); - return -1; + return AVERROR(EINVAL); } /* Check for supported image dimensions. */ if (dimension != 2 && dimension != 3) { av_log(avctx, AV_LOG_ERROR, "wrong dimension number\n"); - return -1; + return AVERROR(EINVAL); } if (s->depth == SGI_GRAYSCALE) { @@ -246,16 +246,17 @@ static int decode_frame(AVCodecContext *avctx, avctx->pix_fmt = s->bytes_per_channel == 2 ? AV_PIX_FMT_RGBA64BE : AV_PIX_FMT_RGBA; } else { av_log(avctx, AV_LOG_ERROR, "wrong picture format\n"); - return -1; + return AVERROR(EINVAL); } ret = ff_set_dimensions(avctx, s->width, s->height); if (ret < 0) return ret; - if (ff_get_buffer(avctx, p, 0) < 0) { + ret = ff_get_buffer(avctx, p, 0); + if (ret < 0) { av_log(avctx, AV_LOG_ERROR, "get_buffer() failed.\n"); - return -1; + return ret; } p->pict_type = AV_PICTURE_TYPE_I; diff --git a/libavcodec/sgienc.c b/libavcodec/sgienc.c index c5e66cd087..2da4f51d44 100644 --- a/libavcodec/sgienc.c +++ b/libavcodec/sgienc.c @@ -193,7 +193,7 @@ FF_ENABLE_DEPRECATION_WARNINGS /* Make an intermediate consecutive buffer. */ if (!(encode_buf = av_malloc(width * bytes_per_channel))) - return -1; + return AVERROR(ENOMEM); for (z = 0; z < depth; z++) { in_buf = p->data[0] + p->linesize[0] * (height - 1) + z * bytes_per_channel; @@ -208,7 +208,7 @@ FF_ENABLE_DEPRECATION_WARNINGS bytes_per_channel); if (length < 1) { av_free(encode_buf); - return -1; + return AVERROR_INVALIDDATA; } bytestream2_put_be32(&tablen_pcb, length); |