diff --git a/mongoose.c b/mongoose.c index f0b88bd2565684bf76aef10a6e9f7de43aeccdb3..8ebb82ef123e77add4f341a250f90cab41763285 100644 --- a/mongoose.c +++ b/mongoose.c @@ -3726,7 +3726,7 @@ static void read_websocket(struct mg_connection *conn) { mask = buf + 4; } else if (body_len >= 10) { conn->content_len = 2 + mask_len + - ((uint64_t) htonl(* (uint32_t *) &buf[2])) << 32 | + (((uint64_t) htonl(* (uint32_t *) &buf[2])) << 32) | htonl(* (uint32_t *) &buf[6]); mask = buf + 10; } @@ -3736,7 +3736,8 @@ static void read_websocket(struct mg_connection *conn) { if (call_user(conn, MG_WEBSOCKET_MESSAGE) != NULL) { break; // Callback signalled to exit } - discard_len = conn->content_len > body_len ? body_len : conn->content_len; + discard_len = conn->content_len > body_len ? + body_len : (int) conn->content_len; memmove(buf, buf + discard_len, conn->data_len - discard_len); conn->data_len -= discard_len; conn->content_len = conn->consumed_content = 0;