From 313da47aa1f28aba3a81b0f4c9c23fd29df1070a Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 14 Nov 2012 08:59:03 +0100 Subject: [PATCH] 8bps: return meaningful error codes. --- libavcodec/8bps.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libavcodec/8bps.c b/libavcodec/8bps.c index 8f0692c..ceed13f 100644 --- a/libavcodec/8bps.c +++ b/libavcodec/8bps.c @@ -69,15 +69,16 @@ static int decode_frame(AVCodecContext *avctx, void *data, unsigned int px_inc; unsigned int planes = c->planes; unsigned char *planemap = c->planemap; + int ret; if (c->pic.data[0]) avctx->release_buffer(avctx, &c->pic); c->pic.reference = 0; c->pic.buffer_hints = FF_BUFFER_HINTS_VALID; - if (ff_get_buffer(avctx, &c->pic) < 0){ + if ((ret = ff_get_buffer(avctx, &c->pic)) < 0) { av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); - return -1; + return ret; } /* Set data pointer after line lengths */ @@ -101,14 +102,14 @@ static int decode_frame(AVCodecContext *avctx, void *data, /* Decode a row of this plane */ while (dlen > 0) { if (dp + 1 >= buf + buf_size) - return -1; + return AVERROR_INVALIDDATA; if ((count = *dp++) <= 127) { count++; dlen -= count + 1; if (pixptr + count * px_inc > pixptr_end) break; if (dp + count > buf + buf_size) - return -1; + return AVERROR_INVALIDDATA; while (count--) { *pixptr = *dp++; pixptr += px_inc; @@ -185,7 +186,7 @@ static av_cold int decode_init(AVCodecContext *avctx) default: av_log(avctx, AV_LOG_ERROR, "Error: Unsupported color depth: %u.\n", avctx->bits_per_coded_sample); - return -1; + return AVERROR_INVALIDDATA; } return 0; -- 2.7.4