From e3f5b6f16d606b769a82cf4ef1647c4887419374 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 15 Mar 2015 11:21:50 +0100 Subject: [PATCH] avcodec/ac3: Fix undefined shift in ff_ac3_bit_alloc_calc_mask() Found-by: Clang -fsanitize=shift Reported-by: Thierry Foucu Signed-off-by: Michael Niedermayer --- libavcodec/ac3.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/ac3.c b/libavcodec/ac3.c index 29e132f5d1..c4fc77cbdf 100644 --- a/libavcodec/ac3.c +++ b/libavcodec/ac3.c @@ -200,9 +200,9 @@ int ff_ac3_bit_alloc_calc_mask(AC3BitAllocParameters *s, int16_t *band_psd, if (band >= AC3_CRITICAL_BANDS || dba_lengths[seg] > AC3_CRITICAL_BANDS-band) return -1; if (dba_values[seg] >= 4) { - delta = (dba_values[seg] - 3) << 7; + delta = (dba_values[seg] - 3) * 128; } else { - delta = (dba_values[seg] - 4) << 7; + delta = (dba_values[seg] - 4) * 128; } for (i = 0; i < dba_lengths[seg]; i++) { mask[band++] += delta;