From aa9daeee924e6dd4e465a3a0e01c958c9b9cbde0 Mon Sep 17 00:00:00 2001 From: dmiller Date: Tue, 18 Aug 2026 16:06:56 +0000 Subject: [PATCH] Try harder to pass validation when fuzzing decode_reply() --- traceroute.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/traceroute.cc b/traceroute.cc index 903574b69..231de10fc 100644 --- a/traceroute.cc +++ b/traceroute.cc @@ -1219,7 +1219,20 @@ static bool decode_reply(const u8 *ip, unsigned int len, Reply *reply) { bool fuzz_decode_reply(const u8 *ip, unsigned int len) { global_id = 0; Reply reply; - return decode_reply(ip, len, &reply); + if (decode_reply(ip, len, &reply)) + return true; + + if (len > 24) { + global_id = ntohs(*(u16 *)(ip + 22)); + if (decode_reply(ip, len, &reply)) + return true; + } + if (len > 44) { + global_id = ntohs(*(u16 *)(ip + 42)); + if (decode_reply(ip, len, &reply)) + return true; + } + return false; } #endif