From ca7502b6de1e1ae49a62ad6b7a7ae8b760fa51ff Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Fri, 1 Apr 2022 14:28:45 +0200 Subject: [PATCH] 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. --- src/net_packet.c | 1 + 1 file changed, 1 insertion(+) 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); -- 2.20.1