From 1e763454322f7fbc7799f6009bf2e11d7a3b9821 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Mon, 12 Jan 2015 23:55:45 +0100 Subject: png: improve signature check Return proper error code, print an error message and add missing parentheses. --- libavcodec/pngdec.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'libavcodec/pngdec.c') diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c index fa7f7cc0a6..dec5bd512c 100644 --- a/libavcodec/pngdec.c +++ b/libavcodec/pngdec.c @@ -415,9 +415,10 @@ static int decode_frame(AVCodecContext *avctx, /* check signature */ if (buf_size < 8 || - memcmp(buf, ff_pngsig, 8) != 0 && - memcmp(buf, ff_mngsig, 8) != 0) - return -1; + (memcmp(buf, ff_pngsig, 8) != 0 && memcmp(buf, ff_mngsig, 8) != 0)) { + av_log(avctx, AV_LOG_ERROR, "Invalid PNG signature (%d).\n", buf_size); + return AVERROR_INVALIDDATA; + } bytestream2_init(&s->gb, buf + 8, buf_size - 8); s->y = s->state = 0; -- cgit v1.2.3