Emilia Kasper
be109b9eec
Fix undefined behaviour in shifts.
...
Td4 and Te4 are arrays of u8. A u8 << int promotes the u8 to an int first then shifts.
If the mathematical result of a shift (as modelled by lhs * 2^{rhs}) is not representable
in an integer, behaviour is undefined. In other words, you can't shift into the sign bit
of a signed integer. Fix this by casting to u32 whenever we're shifting left by 24.
(For consistency, cast other shifts, too.)
Caught by -fsanitize=shift
Submitted by Nick Lewycky (Google)
Reviewed-by: Andy Polyakov <appro@openssl.org>
(cherry picked from commit 8b37e5c14f0eddb10c7f91ef91004622d90ef361)
2015-03-13 21:14:20 -07:00
..
2015-03-13 21:14:20 -07:00
2015-03-12 13:45:24 +00:00
2015-01-22 09:31:38 +00:00
2015-03-10 12:34:21 +01:00
2015-03-12 09:29:48 +00:00
2015-01-22 09:31:38 +00:00
2015-02-24 10:12:57 +01:00
2015-01-22 09:31:48 +00:00
2015-01-22 09:31:38 +00:00
2015-03-05 09:15:08 +00:00
2015-01-22 09:31:38 +00:00
2015-02-12 13:01:33 -05:00
2015-02-05 09:45:25 -05:00
2015-03-12 09:29:48 +00:00
2015-03-12 09:29:48 +00:00
2015-03-05 09:15:08 +00:00
2015-02-25 17:22:01 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-26 10:46:26 -05:00
2015-01-22 09:31:38 +00:00
2015-03-12 09:29:48 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:48 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:48 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-30 16:38:42 +01:00
2015-03-05 09:15:08 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 14:11:04 +00:00
2015-02-24 10:12:57 +01:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-03-05 09:15:08 +00:00
2015-01-22 09:31:48 +00:00
2015-01-22 09:31:48 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-26 11:06:28 -05:00
2015-01-22 09:31:38 +00:00
2015-02-22 19:22:09 +01:00
2015-01-22 09:31:38 +00:00
2015-01-22 16:12:26 +00:00
2015-01-22 09:31:38 +00:00
2015-03-05 09:15:08 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-02-22 08:10:29 +01:00
2015-01-22 09:31:48 +00:00
2015-03-02 15:26:41 +00:00
2015-03-12 09:29:48 +00:00
2008-04-17 10:19:16 +00:00
2011-08-12 12:31:08 +00:00
2014-06-10 23:20:55 +02:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-06 11:14:23 +01:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2014-06-18 13:43:09 +02:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-02-09 13:01:15 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2011-11-14 20:45:57 +00:00
2014-06-18 13:43:09 +02:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-13 11:28:54 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:48 +00:00
2015-01-22 09:31:38 +00:00
2005-12-16 10:37:24 +00:00
2015-01-22 16:16:24 +00:00
2015-01-22 09:31:38 +00:00
2013-06-30 23:13:23 +02:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2014-07-20 14:36:49 +02:00
2015-01-22 09:31:38 +00:00
2011-11-14 20:47:22 +00:00
2015-01-22 09:31:38 +00:00
2013-05-20 00:16:18 +02:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2015-01-22 09:31:38 +00:00
2014-02-14 17:25:14 +01:00
2014-02-14 17:25:14 +01:00