diff --git a/libs/libc/net/lib_inetaddr.c b/libs/libc/net/lib_inetaddr.c index e71ee8e011e..1b6db62bc44 100644 --- a/libs/libc/net/lib_inetaddr.c +++ b/libs/libc/net/lib_inetaddr.c @@ -102,7 +102,7 @@ in_addr_t inet_addr(FAR const char *cp) { if ((a < 0x100) && (b < 0x1000000)) { - result = (a << 24) | b; + result = (((uint32_t) a) << 24) | b; } break; } @@ -111,7 +111,7 @@ in_addr_t inet_addr(FAR const char *cp) { if ((a < 0x100) && (b < 0x100) && (c < 0x10000)) { - result = (a << 24) | (b << 16) | c; + result = (((uint32_t) a) << 24) | (((uint32_t) b) << 16) | c; } break; } @@ -120,7 +120,8 @@ in_addr_t inet_addr(FAR const char *cp) { if ((a < 0x100) && (b < 0x100) && (c < 0x100) && (d < 0x100)) { - result = (a << 24) | (b << 16) | (c << 8) | d; + result = (((uint32_t) a) << 24) | (((uint32_t) b) << 16) | + (((uint32_t) c) << 8) | d; } break; }