diff options
author | Alex Converse <aconverse@google.com> | 2015-11-19 15:04:20 -0800 |
---|---|---|
committer | Alex Converse <aconverse@google.com> | 2015-11-19 15:04:20 -0800 |
commit | 42b7c44b2fa40ff8b070809e79f9931526f5fe52 (patch) | |
tree | a5b30388d96cae61805addac331ef9f49b982512 | |
parent | b1fcd1751e2b63efbb9f6b4960a42bd757e0c47e (diff) | |
download | libvpx-42b7c44b2fa40ff8b070809e79f9931526f5fe52.tar libvpx-42b7c44b2fa40ff8b070809e79f9931526f5fe52.tar.gz libvpx-42b7c44b2fa40ff8b070809e79f9931526f5fe52.tar.bz2 libvpx-42b7c44b2fa40ff8b070809e79f9931526f5fe52.zip |
Fix a signed shift overflow in vpx_rb_read_inv_signed_literal.
Found with clang -fsanitize=integer
Change-Id: I17cb2166c06ff463abfaf9b0e6bc749d0d6fdf94
-rw-r--r-- | vpx_dsp/bitreader_buffer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/vpx_dsp/bitreader_buffer.c b/vpx_dsp/bitreader_buffer.c index bb917263e..d7b55cf9f 100644 --- a/vpx_dsp/bitreader_buffer.c +++ b/vpx_dsp/bitreader_buffer.c @@ -45,7 +45,7 @@ int vpx_rb_read_inv_signed_literal(struct vpx_read_bit_buffer *rb, int bits) { #if CONFIG_MISC_FIXES const int nbits = sizeof(unsigned) * 8 - bits - 1; - const unsigned value = vpx_rb_read_literal(rb, bits + 1) << nbits; + const unsigned value = (unsigned)vpx_rb_read_literal(rb, bits + 1) << nbits; return ((int) value) >> nbits; #else return vpx_rb_read_signed_literal(rb, bits); |