Skip to content

Commit 22facff

Browse files
committed
Merge branch 'fix/ws_transport_linux_signed_promotions' into 'master'
fix(ws_transport): Fix incorrect packet-len on linux due to int promotions of char (GitHub PR) Closes IDFGH-13642 and IDFGH-13657 See merge request espressif/esp-idf!33595
2 parents 3415ff2 + 58775cc commit 22facff

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

components/tcp_transport/transport_ws.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ static int ws_read_header(esp_transport_handle_t t, char *buffer, int len, int t
504504
ESP_LOGE(TAG, "Error read data");
505505
return rlen;
506506
}
507-
payload_len = data_ptr[0] << 8 | data_ptr[1];
507+
payload_len = (uint8_t)data_ptr[0] << 8 | (uint8_t)data_ptr[1];
508508
} else if (payload_len == 127) {
509509
// headerLen += 8;
510510
header = 8;
@@ -517,7 +517,7 @@ static int ws_read_header(esp_transport_handle_t t, char *buffer, int len, int t
517517
// really too big!
518518
payload_len = 0xFFFFFFFF;
519519
} else {
520-
payload_len = data_ptr[4] << 24 | data_ptr[5] << 16 | data_ptr[6] << 8 | data_ptr[7];
520+
payload_len = (uint8_t)data_ptr[4] << 24 | (uint8_t)data_ptr[5] << 16 | (uint8_t)data_ptr[6] << 8 | data_ptr[7];
521521
}
522522
}
523523

0 commit comments

Comments
 (0)