diff options
author | dalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-13 19:18:44 +0000 |
---|---|---|
committer | dalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-13 19:18:44 +0000 |
commit | 14ac682365925234f1f7bc3572f185b69f798814 (patch) | |
tree | 92e88a35ae3abf6fbd87b6b53d0ace098e9dc031 /courgette/encoded_program_unittest.cc | |
parent | 3eaf5432ecb58dbe6d99a4eeebfa4c13618383f6 (diff) | |
download | chromium_src-14ac682365925234f1f7bc3572f185b69f798814.zip chromium_src-14ac682365925234f1f7bc3572f185b69f798814.tar.gz chromium_src-14ac682365925234f1f7bc3572f185b69f798814.tar.bz2 |
Fix undefined behavior due to negative bitshifting.
Reported externally here:
http://www.viva64.com/en/b/0205/
Relevant C++ spec:
The value of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits
are zero-filled. If E1 has an unsigned type, the value of the result is
E1 × 2E^2, reduced modulo one more than the maximum value representable
in the result type. Otherwise, if E1 has a signed type and non-negative
value, and E1×2E^2 is representable in the result type, then that is the
resulting value; otherwise, the behavior is undefined.
BUG=271530
TEST=media_unittests
Review URL: https://chromiumcodereview.appspot.com/22950002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217307 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'courgette/encoded_program_unittest.cc')
0 files changed, 0 insertions, 0 deletions