1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Websockets: Fix buffer size checks in put_packet()

Also check the error return value of wslay_event_queue_msg()
This commit is contained in:
Max Hilbrunner
2021-10-28 10:47:44 +02:00
parent 435d50bf0f
commit 38126690c7
2 changed files with 9 additions and 6 deletions

View File

@@ -54,11 +54,14 @@ Error EMWSPeer::read_msg(const uint8_t *p_data, uint32_t p_size, bool p_is_strin
}
Error EMWSPeer::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
ERR_FAIL_COND_V(_out_buf_size && ((uint64_t)godot_js_websocket_buffered_amount(peer_sock) >= (1ULL << _out_buf_size)), ERR_OUT_OF_MEMORY);
ERR_FAIL_COND_V(_out_buf_size && ((uint64_t)godot_js_websocket_buffered_amount(peer_sock) + p_buffer_size >= (1ULL << _out_buf_size)), ERR_OUT_OF_MEMORY);
int is_bin = write_mode == WebSocketPeer::WRITE_MODE_BINARY ? 1 : 0;
godot_js_websocket_send(peer_sock, p_buffer, p_buffer_size, is_bin);
if (godot_js_websocket_send(peer_sock, p_buffer, p_buffer_size, is_bin) != 0) {
return FAILED;
}
return OK;
}