From 49469840abbeb72b89dcec3983d563daaf53407f Mon Sep 17 00:00:00 2001 From: Sergey Lyubka Date: Tue, 26 Nov 2024 20:23:12 +0000 Subject: [PATCH] Fix IP csum calculation on 8-bit platforms --- mongoose.c | 2 +- src/net_builtin.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mongoose.c b/mongoose.c index c4ae5f4ec4..4ba184f357 100644 --- a/mongoose.c +++ b/mongoose.c @@ -4206,7 +4206,7 @@ static void mkpay(struct pkt *pkt, void *p) { static uint32_t csumup(uint32_t sum, const void *buf, size_t len) { size_t i; const uint8_t *p = (const uint8_t *) buf; - for (i = 0; i < len; i++) sum += i & 1 ? p[i] : (uint32_t) (p[i] << 8); + for (i = 0; i < len; i++) sum += i & 1 ? p[i] : ((uint32_t) p[i]) << 8; return sum; } diff --git a/src/net_builtin.c b/src/net_builtin.c index 6576bde518..e37ab9a25d 100644 --- a/src/net_builtin.c +++ b/src/net_builtin.c @@ -152,7 +152,7 @@ static void mkpay(struct pkt *pkt, void *p) { static uint32_t csumup(uint32_t sum, const void *buf, size_t len) { size_t i; const uint8_t *p = (const uint8_t *) buf; - for (i = 0; i < len; i++) sum += i & 1 ? p[i] : (uint32_t) (p[i] << 8); + for (i = 0; i < len; i++) sum += i & 1 ? p[i] : ((uint32_t) p[i]) << 8; return sum; }