diff --git a/mongoose.c b/mongoose.c index 2d5dd395a6425bf64eda504ddc8fdaa11af1f911..68ef0319bdae80cb2555a1427da7667a6eed2e23 100644 --- a/mongoose.c +++ b/mongoose.c @@ -1384,7 +1384,8 @@ static void send_websocket_handshake(struct mg_connection *conn, } static int deliver_websocket_frame(struct connection *conn) { - char *buf = conn->local_iobuf.buf; + // Having buf unsigned char * is important, as it is used below in arithmetic + unsigned char *buf = (unsigned char *) conn->local_iobuf.buf; int i, len, buf_len = conn->local_iobuf.len, frame_len = 0, mask_len = 0, header_len = 0, data_len = 0, buffered = 0; @@ -1409,7 +1410,7 @@ static int deliver_websocket_frame(struct connection *conn) { if (buffered) { conn->mg_conn.content_len = data_len; - conn->mg_conn.content = buf + header_len; + conn->mg_conn.content = (char *) buf + header_len; conn->mg_conn.wsbits = buf[0]; // Apply mask if necessary