diff --git a/scan_engine.cc b/scan_engine.cc index bda44265b..74f869ac2 100644 --- a/scan_engine.cc +++ b/scan_engine.cc @@ -4524,7 +4524,7 @@ static bool get_pcap_result(UltraScanInfo *USI, struct timeval *stime) { if (datalen < 8) continue; - if (icmp->icmp_type != 3) + if (icmp->icmp_type != 3 && icmp->icmp_type != 11) continue; encaps_len = datalen - 8; @@ -4637,6 +4637,11 @@ static bool get_pcap_result(UltraScanInfo *USI, struct timeval *stime) { break; goodone = true; } + else if (icmp->icmp_type == 11) { /* ICMP Time Exceeded */ + newstate = PORT_FILTERED; + current_reason = icmp_to_reason(hdr.proto, icmp->icmp_type, icmp->icmp_code); + goodone = true; + } } } else if (hdr.proto == IPPROTO_ICMPV6) { const void *encaps_data;