diff --git a/idle_scan.cc b/idle_scan.cc index 83d1ba3aa..063a6c6b7 100644 --- a/idle_scan.cc +++ b/idle_scan.cc @@ -960,10 +960,10 @@ static int idle_treescan(struct idle_proxy_info *proxy, Target *target, } if (firstHalfSz == 1 && flatcount1 == 1) - target->ports.addPort(ports[0], IPPROTO_TCP, NULL, PORT_OPEN); + target->ports.addPort(ports[0], IPPROTO_TCP, PORT_OPEN); if ((secondHalfSz == 1) && flatcount2 == 1) - target->ports.addPort(ports[firstHalfSz], IPPROTO_TCP, NULL, PORT_OPEN); + target->ports.addPort(ports[firstHalfSz], IPPROTO_TCP, PORT_OPEN); return totalfound; } @@ -1044,8 +1044,7 @@ void idle_scan(Target *target, u16 *portarray, int numports, but not determined to be open, and add them in the "closed" state */ for(portidx = 0; portidx < numports; portidx++) { if (target->ports.getPortEntry(portarray[portidx], IPPROTO_TCP) == NULL) { - target->ports.addPort(portarray[portidx], IPPROTO_TCP, NULL, - PORT_CLOSEDFILTERED); + target->ports.addPort(portarray[portidx], IPPROTO_TCP, PORT_CLOSEDFILTERED); target->ports.setStateReason(portarray[portidx], IPPROTO_TCP, ER_NOIPIDCHANGE, 0, 0); } else target->ports.setStateReason(portarray[portidx], IPPROTO_TCP, ER_IPIDCHANGE, 0, 0); diff --git a/nmap_rpc.cc b/nmap_rpc.cc index a705bd83c..a234715f3 100644 --- a/nmap_rpc.cc +++ b/nmap_rpc.cc @@ -362,7 +362,7 @@ static int rpc_are_we_done(char *msg, int msg_len, Target *target, if (rsi->rpc_current_port->state == PORT_OPENFILTERED) { /* Received a packet, so this port is actually open */ target->ports.addPort(rsi->rpc_current_port->portno, - rsi->rpc_current_port->proto, NULL, PORT_OPEN); + rsi->rpc_current_port->proto, PORT_OPEN); } rpc_pack = (struct rpc_hdr_rcv *) msg; diff --git a/nse_nmaplib.cc b/nse_nmaplib.cc index ab276a064..6a2cb03b0 100644 --- a/nse_nmaplib.cc +++ b/nse_nmaplib.cc @@ -486,13 +486,13 @@ static int l_set_port_state (lua_State *L) case PORT_OPEN: if (port->state == PORT_OPEN) return 0; - target->ports.addPort(port->portno, port->proto, NULL, PORT_OPEN); + target->ports.addPort(port->portno, port->proto, PORT_OPEN); port->state = PORT_OPEN; break; case PORT_CLOSED: if (port->state == PORT_CLOSED) return 0; - target->ports.addPort(port->portno, port->proto, NULL, PORT_CLOSED); + target->ports.addPort(port->portno, port->proto, PORT_CLOSED); port->state = PORT_CLOSED; break; } diff --git a/output.cc b/output.cc index 2a1af742f..aa1827349 100644 --- a/output.cc +++ b/output.cc @@ -540,7 +540,6 @@ void printportoutput(Target * currenths, PortList * plist) { char rpcmachineinfo[64]; char portinfo[64]; char grepvers[256]; - char grepown[64]; char *p; char *xmlBuf = NULL; const char *state; @@ -801,23 +800,13 @@ void printportoutput(Target * currenths, PortList * plist) { // such as \/ and \\ . // But that makes it harder to pick // out fields with awk, cut, and such. So I'm gonna use the // ugly hat (fitting to grepable output) or replacing the '/' - // character with '|' in the version and owner fields. + // character with '|' in the version field. Strncpy(grepvers, sd.fullversion, sizeof(grepvers) / sizeof(*grepvers)); p = grepvers; while ((p = strchr(p, '/'))) { *p = '|'; p++; } - if (!current->owner) - *grepown = '\0'; - else { - Strncpy(grepown, current->owner, sizeof(grepown) / sizeof(*grepown)); - p = grepown; - while ((p = strchr(p, '/'))) { - *p = '|'; - p++; - } - } if (!sd.name) serviceinfo[0] = '\0'; else { @@ -827,9 +816,8 @@ void printportoutput(Target * currenths, PortList * plist) { p++; } } - log_write(LOG_MACHINE, "%d/%s/%s/%s/%s/%s/%s/", current->portno, - state, protocol, grepown, serviceinfo, rpcmachineinfo, - grepvers); + log_write(LOG_MACHINE, "%d/%s/%s//%s/%s/%s/", current->portno, + state, protocol, serviceinfo, rpcmachineinfo, grepvers); log_write(LOG_XML, "", protocol, current->portno); @@ -839,9 +827,6 @@ void printportoutput(Target * currenths, PortList * plist) { if (current->reason.ip_addr.s_addr) log_write(LOG_XML, " reason_ip=\"%s\"", inet_ntoa(current->reason.ip_addr)); log_write(LOG_XML, "/>"); - if (current->owner && *current->owner) { - log_write(LOG_XML, "", current->owner); - } if (sd.name || sd.service_fp) { xmlBuf = getServiceXMLBuf(&sd); diff --git a/portlist.cc b/portlist.cc index eb8094f35..490d486e2 100644 --- a/portlist.cc +++ b/portlist.cc @@ -109,7 +109,6 @@ extern NmapOps o; /* option structure */ Port::Port() { portno = proto = 0; - owner = NULL; rpc_status = RPC_STATUS_UNTESTED; rpc_program = rpc_lowver = rpc_highver = 0; state = 0; @@ -123,8 +122,6 @@ Port::Port() { } Port::~Port() { - if (owner) - free(owner); if (serviceprobe_product) free(serviceprobe_product); if (serviceprobe_version) @@ -426,21 +423,16 @@ PortList::~PortList() { } -int PortList::addPort(u16 portno, u8 protocol, char *owner, int state) { +int PortList::addPort(u16 portno, u8 protocol, int state) { Port *current; - char msg[128]; int proto = INPROTO2PORTLISTPROTO(protocol); assert(state < PORT_HIGHEST_STATE); if ((state == PORT_OPEN && o.verbose) || (o.debugging > 1)) { - if (owner && *owner) { - Snprintf(msg, sizeof(msg), " (owner: %s)", owner); - } else msg[0] = '\0'; - - log_write(LOG_STDOUT, "Discovered %s port %hu/%s%s%s\n", + log_write(LOG_STDOUT, "Discovered %s port %hu/%s%s\n", statenum2str(state), portno, - proto2ascii(protocol), msg, idstr? idstr : ""); + proto2ascii(protocol), idstr? idstr : ""); log_flush(LOG_STDOUT); } @@ -457,7 +449,7 @@ int PortList::addPort(u16 portno, u8 protocol, char *owner, int state) { if (current) { /* We must discount our statistics from the old values. Also warn if a complete duplicate */ - if (o.debugging && current->state == state && (!owner || !*owner)) { + if (o.debugging && current->state == state) { error("Duplicate port (%hu/%s)", portno, proto2ascii(protocol)); } state_counts_proto[proto][current->state]--; @@ -472,12 +464,6 @@ int PortList::addPort(u16 portno, u8 protocol, char *owner, int state) { current->state = state; state_counts_proto[proto][state]++; - - if (owner && *owner) { - if (current->owner) - free(current->owner); - current->owner = strdup(owner); - } if(state == PORT_FILTERED || state == PORT_OPENFILTERED) setStateReason(portno, protocol, ER_NORESPONSE, 0, 0); diff --git a/portlist.h b/portlist.h index cc4e09c5b..42b6c5ab2 100644 --- a/portlist.h +++ b/portlist.h @@ -208,7 +208,6 @@ class Port { u16 portno; u8 proto; - char *owner; int state; state_reason_t reason; @@ -264,7 +263,7 @@ class PortList { /* Add a new port to this list. If the state has changed, it is OK to call this function to effect the change */ - int addPort(u16 portno, u8 protocol, char *owner, int state); + int addPort(u16 portno, u8 protocol, int state); int removePort(u16 portno, u8 protocol); /* Saves an identification string for the target containing these ports (an IP addrss might be a good example, but set what you diff --git a/scan_engine.cc b/scan_engine.cc index 9ca7c5087..12998c8d0 100644 --- a/scan_engine.cc +++ b/scan_engine.cc @@ -2631,25 +2631,25 @@ static bool ultrascan_port_pspec_update(UltraScanInfo *USI, in a SYN scan, but not neccessarily for UDP scan */ case PORT_TESTING: /* Brand new port -- add it to the list */ - hss->target->ports.addPort(portno, proto, NULL, newstate); + hss->target->ports.addPort(portno, proto, newstate); break; case PORT_OPEN: if (newstate != PORT_OPEN) { if (noresp_open_scan) { - hss->target->ports.addPort(portno, proto, NULL, newstate); + hss->target->ports.addPort(portno, proto, newstate); } /* Otherwise The old open takes precendence */ } break; case PORT_CLOSED: if (newstate != PORT_CLOSED) { if (!noresp_open_scan && newstate != PORT_FILTERED) - hss->target->ports.addPort(portno, proto, NULL, newstate); + hss->target->ports.addPort(portno, proto, newstate); } break; case PORT_FILTERED: if (newstate != PORT_FILTERED) { if (!noresp_open_scan || newstate != PORT_OPEN) - hss->target->ports.addPort(portno, proto, NULL, newstate); + hss->target->ports.addPort(portno, proto, newstate); } break; case PORT_UNFILTERED: @@ -2658,11 +2658,11 @@ static bool ultrascan_port_pspec_update(UltraScanInfo *USI, case. I'll change it if the new state is open or closed, though I don't expect that to ever happen */ if (newstate == PORT_OPEN || newstate == PORT_CLOSED) - hss->target->ports.addPort(portno, proto, NULL, newstate); + hss->target->ports.addPort(portno, proto, newstate); break; case PORT_OPENFILTERED: if (newstate != PORT_OPENFILTERED) { - hss->target->ports.addPort(portno, proto, NULL, newstate); + hss->target->ports.addPort(portno, proto, newstate); } break; default: @@ -5258,10 +5258,8 @@ void bounce_scan(Target *target, u16 *portarray, int numports, perror("recv problem from FTP bounce server"); } else if (res == 0) { if (timedout) - target->ports.addPort(portarray[i], IPPROTO_TCP, NULL, - PORT_FILTERED); - else target->ports.addPort(portarray[i], IPPROTO_TCP, NULL, - PORT_CLOSED); + target->ports.addPort(portarray[i], IPPROTO_TCP, PORT_FILTERED); + else target->ports.addPort(portarray[i], IPPROTO_TCP, PORT_CLOSED); } else { recvbuf[res] = '\0'; if (o.debugging) log_write(LOG_STDOUT, "result of LIST: %s", recvbuf); @@ -5272,7 +5270,7 @@ void bounce_scan(Target *target, u16 *portarray, int numports, res = recvtime(sd, recvbuf, 2048,10, NULL); } if (recvbuf[0] == '1' || recvbuf[0] == '2') { - target->ports.addPort(portarray[i], IPPROTO_TCP, NULL, PORT_OPEN); + target->ports.addPort(portarray[i], IPPROTO_TCP, PORT_OPEN); if (recvbuf[0] == '1') { res = recvtime(sd, recvbuf, 2048,5, NULL); if (res < 0) @@ -5292,7 +5290,7 @@ void bounce_scan(Target *target, u16 *portarray, int numports, } } else { /* This means the port is closed ... */ - target->ports.addPort(portarray[i], IPPROTO_TCP, NULL, PORT_CLOSED); + target->ports.addPort(portarray[i], IPPROTO_TCP, PORT_CLOSED); } } } diff --git a/service_scan.cc b/service_scan.cc index fd7900931..d14aac086 100644 --- a/service_scan.cc +++ b/service_scan.cc @@ -1700,7 +1700,7 @@ static void adjustPortStateIfNeccessary(ServiceNFO *svc) { char host[128]; if (svc->port->state == PORT_OPENFILTERED) { - svc->target->ports.addPort(svc->portno, svc->proto, NULL, PORT_OPEN); + svc->target->ports.addPort(svc->portno, svc->proto, PORT_OPEN); if (svc->proto == IPPROTO_TCP) svc->target->ports.setStateReason(svc->portno, svc->proto, ER_TCPRESPONSE, 0, 0); if (svc->proto == IPPROTO_UDP)