avcodec/png: more informative error message for invalid sBIT size

If the sBIT chunk size is invalid, we should print a more informative
error message rather than return an error and print nothing.

Signed-off-by: Leo Izen <leo.izen@gmail.com>
This commit is contained in:
Leo Izen 2024-07-12 15:03:17 -04:00
parent 4225f51c62
commit 90e28331c7
No known key found for this signature in database
GPG Key ID: 764E48EA48221833

View File

@ -1086,8 +1086,11 @@ static int decode_sbit_chunk(AVCodecContext *avctx, PNGDecContext *s,
channels = s->color_type & PNG_COLOR_MASK_PALETTE ? 3 : ff_png_get_nb_channels(s->color_type);
if (bytestream2_get_bytes_left(gb) != channels)
if (bytestream2_get_bytes_left(gb) != channels) {
av_log(avctx, AV_LOG_ERROR, "Invalid sBIT size: %d, expected: %d\n",
bytestream2_get_bytes_left(gb), channels);
return AVERROR_INVALIDDATA;
}
for (int i = 0; i < channels; i++) {
int b = bytestream2_get_byteu(gb);