From ee269ceec5ae8d8aff5c1312e4ac97af9497a4cb Mon Sep 17 00:00:00 2001 From: Dirk Ziegelmeier Date: Wed, 17 Oct 2018 20:23:28 +0200 Subject: [PATCH] Fix bug #54850: lwip definition of htonX and ntohX do not properly cast to unsigned when byte order is Big Endian Changes suggested by Ivan Warren --- src/include/lwip/def.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/include/lwip/def.h b/src/include/lwip/def.h index 3d6e107e..dfb266d1 100644 --- a/src/include/lwip/def.h +++ b/src/include/lwip/def.h @@ -83,14 +83,14 @@ extern "C" { #endif #if BYTE_ORDER == BIG_ENDIAN -#define lwip_htons(x) (x) -#define lwip_ntohs(x) (x) -#define lwip_htonl(x) (x) -#define lwip_ntohl(x) (x) -#define PP_HTONS(x) (x) -#define PP_NTOHS(x) (x) -#define PP_HTONL(x) (x) -#define PP_NTOHL(x) (x) +#define lwip_htons(x) ((u16_t)(x)) +#define lwip_ntohs(x) ((u16_t)(x)) +#define lwip_htonl(x) ((u32_t)(x)) +#define lwip_ntohl(x) ((u32_t)(x)) +#define PP_HTONS(x) ((u16_t)(x)) +#define PP_NTOHS(x) ((u16_t)(x)) +#define PP_HTONL(x) ((u32_t)(x)) +#define PP_NTOHL(x) ((u32_t)(x)) #else /* BYTE_ORDER != BIG_ENDIAN */ #ifndef lwip_htons u16_t lwip_htons(u16_t x);