diff --git a/mongoose.c b/mongoose.c index 997053d6..e6271ae1 100644 --- a/mongoose.c +++ b/mongoose.c @@ -5800,7 +5800,7 @@ static size_t mkhdr(size_t len, int op, bool is_client, uint8_t *buf) { } else { uint32_t tmp; buf[1] = 127; - tmp = mg_htonl((uint32_t) (len >> 32)); + tmp = mg_htonl((uint32_t) (((uint64_t) len) >> 32)); memcpy(&buf[2], &tmp, sizeof(tmp)); tmp = mg_htonl((uint32_t) (len & 0xffffffffU)); memcpy(&buf[6], &tmp, sizeof(tmp)); diff --git a/src/ws.c b/src/ws.c index 4eba7c5b..4a91acf9 100644 --- a/src/ws.c +++ b/src/ws.c @@ -110,7 +110,7 @@ static size_t mkhdr(size_t len, int op, bool is_client, uint8_t *buf) { } else { uint32_t tmp; buf[1] = 127; - tmp = mg_htonl((uint32_t) (len >> 32)); + tmp = mg_htonl((uint32_t) (((uint64_t) len) >> 32)); memcpy(&buf[2], &tmp, sizeof(tmp)); tmp = mg_htonl((uint32_t) (len & 0xffffffffU)); memcpy(&buf[6], &tmp, sizeof(tmp));