aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2015-12-04 13:43:18 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2015-12-04 13:44:22 +0100
commit2ff61c3c1a0a7d8de741ba37c7662dedb6ad4b60 (patch)
treeaa08fd17e81f86f42258e06c270a0bf6f2a1722b
parent9d44e236187c9cfefb0602149c631f18b9303c21 (diff)
downloadffmpeg-2ff61c3c1a0a7d8de741ba37c7662dedb6ad4b60.tar.gz
avcodec/dnxhddec: Fix runtime error: left shift of negative value
Fixes: 2abd25478c62a675f335fac00b467023/asan_static-oob_10aff98_1227_8811480c6ef1e970a7977ceb7e5a9958.mxf Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/dnxhddec.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/dnxhddec.c b/libavcodec/dnxhddec.c
index 20ca262fbd..5c09c64f8e 100644
--- a/libavcodec/dnxhddec.c
+++ b/libavcodec/dnxhddec.c
@@ -361,7 +361,7 @@ static av_always_inline int dnxhd_decode_dct_block(const DNXHDContext *ctx,
LAST_SKIP_BITS(bs, &row->gb, len);
sign = ~level >> 31;
level = (NEG_USR32(sign ^ level, len) ^ sign) - sign;
- row->last_dc[component] += level << dc_shift;
+ row->last_dc[component] += level * (1 << dc_shift);
}
block[0] = row->last_dc[component];