diff --git a/CHANGELOG b/CHANGELOG index bc5cca14..587ad57d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -271,6 +271,10 @@ HISTORY ++ Bug fixes: + 2007-08-24 Kieran Mansley + * inet.c Modify (acc >> 16) test to ((acc >> 16) != 0) to help buggy + compiler (Paradigm C++) + 2007-08-09 Frédéric Bernon, Bill Florac * stats.h, stats.c, igmp.h, igmp.c, opt.h: Fix for bug #20503 : IGMP Improvement. Introduce IGMP_STATS to centralize statistics management. diff --git a/src/core/inet.c b/src/core/inet.c index c1b97940..88950553 100644 --- a/src/core/inet.c +++ b/src/core/inet.c @@ -270,7 +270,7 @@ inet_chksum_pseudo(struct pbuf *p, (void *)q, (void *)q->next)); acc += LWIP_CHKSUM(q->payload, q->len); /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): unwrapped lwip_chksum()=%"X32_F" \n", acc));*/ - while (acc >> 16) { + while ((acc >> 16) != 0) { acc = (acc & 0xffffUL) + (acc >> 16); } if (q->len % 2 != 0) { @@ -290,7 +290,7 @@ inet_chksum_pseudo(struct pbuf *p, acc += (u32_t)htons((u16_t)proto); acc += (u32_t)htons(proto_len); - while (acc >> 16) { + while ((acc >> 16) != 0) { acc = (acc & 0xffffUL) + (acc >> 16); } LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): pbuf chain lwip_chksum()=%"X32_F"\n", acc));