summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Converse <aconverse@google.com>2015-11-19 15:04:20 -0800
committerAlex Converse <aconverse@google.com>2015-11-19 15:04:20 -0800
commit42b7c44b2fa40ff8b070809e79f9931526f5fe52 (patch)
treea5b30388d96cae61805addac331ef9f49b982512
parentb1fcd1751e2b63efbb9f6b4960a42bd757e0c47e (diff)
downloadlibvpx-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.c2
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);