Fix undefined integer behavior due to promotion rules
This commit is contained in:
@@ -91,7 +91,7 @@ static UC_INLINE uint32_t uc_unpack_32_le(const uint8_t *r)
|
|||||||
v = r[0];
|
v = r[0];
|
||||||
v |= r[1] << 8;
|
v |= r[1] << 8;
|
||||||
v |= r[2] << 16;
|
v |= r[2] << 16;
|
||||||
v |= r[3] << 24;
|
v |= (uint32_t)r[3] << 24;
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
@@ -204,7 +204,7 @@ static UC_INLINE uint32_t uc_unpack_32_be(const uint8_t *r)
|
|||||||
{
|
{
|
||||||
uint32_t v;
|
uint32_t v;
|
||||||
|
|
||||||
v = r[0] << 24;
|
v = (uint32_t)r[0] << 24;
|
||||||
v |= r[1] << 16;
|
v |= r[1] << 16;
|
||||||
v |= r[2] << 8;
|
v |= r[2] << 8;
|
||||||
v |= r[3];
|
v |= r[3];
|
||||||
|
|||||||
Reference in New Issue
Block a user