diff options
author | Vittorio Giovara | 2015-01-12 23:55:45 +0100 |
---|---|---|
committer | Vittorio Giovara | 2015-01-14 17:10:19 +0100 |
commit | 1e763454322f7fbc7799f6009bf2e11d7a3b9821 (patch) | |
tree | 0fd624144b38b513aaf7bd18261b1cf5360dee1c | |
parent | 456ffec35d55288d589aa1901919e038c3427f30 (diff) |
png: improve signature check
Return proper error code, print an error message and add missing
parentheses.
-rw-r--r-- | libavcodec/pngdec.c | 7 |
1 files changed, 4 insertions, 3 deletions
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; |