diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c index 305908700b..61857d0e5c 100644 --- a/libavcodec/pngdec.c +++ b/libavcodec/pngdec.c @@ -787,7 +787,7 @@ static int decode_trns_chunk(AVCodecContext *avctx, PNGDecContext *s, for (i = 0; i < length / 2; i++) { /* only use the least significant bits */ - v = bytestream2_get_be16(&s->gb) & ((1 << s->bit_depth) - 1); + v = av_mod_uintp2(bytestream2_get_be16(&s->gb), s->bit_depth); if (s->bit_depth > 8) AV_WB16(&s->transparent_color_be[2 * i], v);