diff options
| author | Fabio Alessandrelli | 2017-01-19 17:00:01 +0100 |
|---|---|---|
| committer | Fabio Alessandrelli | 2017-01-23 20:18:23 +0100 |
| commit | 5dc7c920bf1c4bb160d39e13ad6136d80badd7ae (patch) | |
| tree | bc71b2c2a03fdba566781a1b4c1a034818e662c4 /platform/windows | |
| parent | 93368571326e3472522669b76998f58aed78864f (diff) | |
| download | godot-5dc7c920bf1c4bb160d39e13ad6136d80badd7ae.tar.gz godot-5dc7c920bf1c4bb160d39e13ad6136d80badd7ae.tar.zst godot-5dc7c920bf1c4bb160d39e13ad6136d80badd7ae.zip | |
Fix buffer size check in UDP socket.
We were reserving 12 bytes from the buffer for ip, port, and length, but since
IPv6 introduction we should be reserving 24 (IPv6 are 16 bytes)
Diffstat (limited to 'platform/windows')
| -rw-r--r-- | platform/windows/packet_peer_udp_winsock.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/platform/windows/packet_peer_udp_winsock.cpp b/platform/windows/packet_peer_udp_winsock.cpp index e5eb06216..276b9b663 100644 --- a/platform/windows/packet_peer_udp_winsock.cpp +++ b/platform/windows/packet_peer_udp_winsock.cpp @@ -175,7 +175,7 @@ Error PacketPeerUDPWinsock::_poll(bool p_wait) { struct sockaddr_storage from = {0}; int len = sizeof(struct sockaddr_storage); int ret; - while ( (ret = recvfrom(sockfd, (char*)recv_buffer, MIN((int)sizeof(recv_buffer),MAX(rb.space_left()-12, 0)), 0, (struct sockaddr*)&from, &len)) > 0) { + while ( (ret = recvfrom(sockfd, (char*)recv_buffer, MIN((int)sizeof(recv_buffer),MAX(rb.space_left()-24, 0)), 0, (struct sockaddr*)&from, &len)) > 0) { uint32_t port = 0; |
