[FFmpeg-cvslog] avcodec/ac3: Fix undefined shift in ff_ac3_bit_alloc_calc_mask()

Michael Niedermayer git at videolan.org
Sun Mar 15 11:45:17 CET 2015


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Mar 15 11:21:50 2015 +0100| [e3f5b6f16d606b769a82cf4ef1647c4887419374] | committer: Michael Niedermayer

avcodec/ac3: Fix undefined shift in ff_ac3_bit_alloc_calc_mask()

Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu at google.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e3f5b6f16d606b769a82cf4ef1647c4887419374
---

 libavcodec/ac3.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/ac3.c b/libavcodec/ac3.c
index 29e132f..c4fc77c 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;



More information about the ffmpeg-cvslog mailing list