MDEV-17358 my_reverse_bits() is incorrect due to UB

my_reverse_bits(): add a cast to fix a bit shift
This commit is contained in:
Eugene Kosov 2018-10-03 12:22:03 +03:00 committed by Sergey Vojtovich
parent bebe24b03b
commit 853dee854c

View File

@ -115,10 +115,10 @@ static inline uint32 my_clear_highest_bit(uint32 v)
static inline uint32 my_reverse_bits(uint32 key)
{
return
(_my_bits_reverse_table[ key & 255] << 24) |
(_my_bits_reverse_table[(key>> 8) & 255] << 16) |
(_my_bits_reverse_table[(key>>16) & 255] << 8) |
_my_bits_reverse_table[(key>>24) ];
((uint32)_my_bits_reverse_table[ key & 255] << 24) |
((uint32)_my_bits_reverse_table[(key>> 8) & 255] << 16) |
((uint32)_my_bits_reverse_table[(key>>16) & 255] << 8) |
(uint32)_my_bits_reverse_table[(key>>24) ];
}
C_MODE_END