From 99c4008c03b6628412bb1c20b1739a362ebda17d Mon Sep 17 00:00:00 2001 From: jah Date: Wed, 3 Jun 2009 21:39:53 +0000 Subject: [PATCH] Disable traceroute when -6 is requested. Before this, it was possible to reach traceroute() with IPv6 targets if a ping scan was requested. --- nmap.cc | 8 +++++++- output.cc | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nmap.cc b/nmap.cc index 26e4e45e6..b22a5ab0b 100644 --- a/nmap.cc +++ b/nmap.cc @@ -1324,7 +1324,13 @@ int nmap_main(int argc, char *argv[]) { } } - if(o.traceroute && (o.idlescan || o.connectscan)) { +#if HAVE_IPV6 + if(o.af() == AF_INET6 && o.traceroute) { + error("Warning: Traceroute does not support IPv6, disabling..."); + o.traceroute = 0; + } else +#endif + if(o.traceroute && (o.idlescan || o.connectscan)) { error("Warning: Traceroute does not support idle or connect scan, disabling..."); o.traceroute = 0; } diff --git a/output.cc b/output.cc index 36c33341b..b5792ec95 100644 --- a/output.cc +++ b/output.cc @@ -293,7 +293,7 @@ static char * getServiceXMLBuf(struct serviceDeductions *sd) { void win32_warn_raw_sockets(const char *devname) { static set shown_names; - if (shown_names.find(devname) == shown_names.end()) { + if (devname != NULL && shown_names.find(devname) == shown_names.end()) { error("WARNING: Using raw sockets because %s is not an ethernet device. This probably won't work on Windows.\n", devname); shown_names.insert(devname); }