From: Guus Sliepen Date: Fri, 1 Apr 2022 12:28:45 +0000 (+0200) Subject: Prevent underflow when sending UDP probes. X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=commitdiff_plain;h=ca7502b6de1e1ae49a62ad6b7a7ae8b760fa51ff Prevent underflow when sending UDP probes. Make sure send_udp_probe_packet() never tries to send a packet smaller than MIN_PROBE_SIZE, otherwise length calculation could potentially wrap. Fixes #351 on GitHub. --- diff --git a/src/net_packet.c b/src/net_packet.c index 2722fb23..5bdcb1aa 100644 --- a/src/net_packet.c +++ b/src/net_packet.c @@ -1171,6 +1171,7 @@ static void send_udp_probe_packet(node_t *n, size_t len) { len = sizeof(packet.data); } + len = MAX(len, MIN_PROBE_SIZE); packet.offset = DEFAULT_PACKET_OFFSET; memset(DATA(&packet), 0, 14); randomize(DATA(&packet) + 14, len - 14);