diff --git a/libavcodec/8bps.c b/libavcodec/8bps.c index 8f0692c4ba..ceed13f5b8 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;