From 2e05009ff76f957604cdfb8f43058b3c0853ccd6 Mon Sep 17 00:00:00 2001 From: dmiller Date: Thu, 28 Jul 2016 05:11:34 +0000 Subject: [PATCH] Avoid undefined behavior of shifting over the sign bit by declaring unsigned literal --- nbase/nbase_addrset.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nbase/nbase_addrset.c b/nbase/nbase_addrset.c index f6d529154..46fe95bbc 100644 --- a/nbase/nbase_addrset.c +++ b/nbase/nbase_addrset.c @@ -242,10 +242,10 @@ static void in_addr_to_octets(const struct in_addr *ia, uint8_t octets[4]) { u32 hbo = ntohl(ia->s_addr); - octets[0] = (uint8_t) ((hbo & (0xFF << 24)) >> 24); - octets[1] = (uint8_t) ((hbo & (0xFF << 16)) >> 16); - octets[2] = (uint8_t) ((hbo & (0xFF << 8)) >> 8); - octets[3] = (uint8_t) (hbo & 0xFF); + octets[0] = (uint8_t) ((hbo & (0xFFU << 24)) >> 24); + octets[1] = (uint8_t) ((hbo & (0xFFU << 16)) >> 16); + octets[2] = (uint8_t) ((hbo & (0xFFU << 8)) >> 8); + octets[3] = (uint8_t) (hbo & 0xFFU); } #define BITVECTOR_BITS (sizeof(bitvector_t) * CHAR_BIT)