From 1c13713ec1b768c832f7a96b0d56a110916e1d1e Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Wed, 21 Jun 2017 09:48:15 +0200 Subject: [PATCH] New release 7.50 --- .gitignore | 1 + nmap-6.01-r29743.patch | 27 -- nmap-6.40-allresolve.patch | 490 ------------------------------------- nmap.spec | 10 +- nmapfe-32.png | Bin 2607 -> 0 bytes nmapfe-48.png | Bin 4509 -> 0 bytes sources | 2 +- 7 files changed, 7 insertions(+), 523 deletions(-) delete mode 100644 nmap-6.01-r29743.patch delete mode 100644 nmap-6.40-allresolve.patch delete mode 100644 nmapfe-32.png delete mode 100644 nmapfe-48.png diff --git a/.gitignore b/.gitignore index 6687156..1e706fe 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ nmap-5.21.tar.bz2 /nmap-7.30.tar.bz2 /nmap-7.31.tar.bz2 /nmap-7.40.tar.bz2 +/nmap-7.50.tar.bz2 diff --git a/nmap-6.01-r29743.patch b/nmap-6.01-r29743.patch deleted file mode 100644 index 58c44c0..0000000 --- a/nmap-6.01-r29743.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -up nmap-6.01/ncat/ncat_connect.c.r29743 nmap-6.01/ncat/ncat_connect.c ---- nmap-6.01/ncat/ncat_connect.c.r29743 2012-09-19 14:56:37.889102887 +0200 -+++ nmap-6.01/ncat/ncat_connect.c 2012-09-19 14:56:56.148241822 +0200 -@@ -113,6 +113,14 @@ - #include - #endif - -+#ifdef WIN32 -+/* Define missing constant for shutdown(2). -+ * See: -+ * http://msdn.microsoft.com/en-us/library/windows/desktop/ms740481%28v=vs.85%29.aspx -+ */ -+#define SHUT_WR SD_SEND -+#endif -+ - struct conn_state { - nsock_iod sock_nsi; - nsock_iod stdin_nsi; -@@ -732,6 +740,8 @@ static void read_stdin_handler(nsock_poo - if (o.sendonly) { - /* In --send-only mode, exit after EOF on stdin. */ - nsock_loop_quit(nsp); -+ } else { -+ shutdown(nsi_getsd(cs.sock_nsi), SHUT_WR); - } - return; - } else if (status == NSE_STATUS_ERROR) { diff --git a/nmap-6.40-allresolve.patch b/nmap-6.40-allresolve.patch deleted file mode 100644 index 6027ac2..0000000 --- a/nmap-6.40-allresolve.patch +++ /dev/null @@ -1,490 +0,0 @@ -diff -up nmap-7.30/ncat/ncat_connect.c.allresolve nmap-7.30/ncat/ncat_connect.c ---- nmap-7.30/ncat/ncat_connect.c.allresolve 2016-07-19 12:07:58.000000000 +0200 -+++ nmap-7.30/ncat/ncat_connect.c 2016-10-03 10:56:08.892259479 +0200 -@@ -164,6 +164,7 @@ static struct conn_state cs = { - 0 - }; - -+static void try_nsock_connect(nsock_pool nsp, struct sockaddr_list *conn_addr); - static void connect_handler(nsock_pool nsp, nsock_event evt, void *data); - static void post_connect(nsock_pool nsp, nsock_iod iod); - static void read_stdin_handler(nsock_pool nsp, nsock_event evt, void *data); -@@ -535,8 +536,8 @@ static int do_proxy_socks4(void) - socket_buffer_init(&stateful_buf, sd); - - if (o.verbose) { -- loguser("Connected to proxy %s:%hu\n", inet_socktop(&targetss), -- inet_port(&targetss)); -+ loguser("Connected to proxy %s:%hu\n", inet_socktop(&targetaddrs->addr), -+ inet_port(&targetaddrs->addr)); - } - - /* Fill the socks4_data struct */ -@@ -636,8 +637,8 @@ static int do_proxy_socks5(void) - socket_buffer_init(&stateful_buf, sd); - - if (o.verbose) { -- loguser("Connected to proxy %s:%hu\n", inet_socktop(&targetss), -- inet_port(&targetss)); -+ loguser("Connected to proxy %s:%hu\n", inet_socktop(&targetaddrs->addr), -+ inet_port(&targetaddrs->addr)); - } - - zmem(&socks5msg,sizeof(socks5msg)); -@@ -967,7 +968,7 @@ int ncat_connect(void) - - if (o.af != AF_INET) - bye("Sorry, -g can only currently be used with IPv4."); -- ipopts = buildsrcrte(targetss.in.sin_addr, o.srcrtes, o.numsrcrtes, o.srcrteptr, &ipoptslen); -+ ipopts = buildsrcrte(targetaddrs->addr.in.sin_addr, o.srcrtes, o.numsrcrtes, o.srcrteptr, &ipoptslen); - - nsock_iod_set_ipoptions(cs.sock_nsi, ipopts, ipoptslen); - free(ipopts); /* Nsock has its own copy */ -@@ -977,49 +978,18 @@ int ncat_connect(void) - if (o.af == AF_UNIX) { - if (o.proto == IPPROTO_UDP) { - nsock_connect_unixsock_datagram(mypool, cs.sock_nsi, connect_handler, NULL, -- &targetss.sockaddr, -- SUN_LEN((struct sockaddr_un *)&targetss.sockaddr)); -+ &targetaddrs->addr.sockaddr, -+ SUN_LEN((struct sockaddr_un *)&targetaddrs->addr.sockaddr)); - } else { - nsock_connect_unixsock_stream(mypool, cs.sock_nsi, connect_handler, o.conntimeout, -- NULL, &targetss.sockaddr, -- SUN_LEN((struct sockaddr_un *)&targetss.sockaddr)); -+ NULL, &targetaddrs->addr.sockaddr, -+ SUN_LEN((struct sockaddr_un *)&targetaddrs->addr.sockaddr)); - } - } else - #endif -- if (o.proto == IPPROTO_UDP) { -- nsock_connect_udp(mypool, cs.sock_nsi, connect_handler, -- NULL, &targetss.sockaddr, targetsslen, -- inet_port(&targetss)); -- } --#ifdef HAVE_OPENSSL -- else if (o.proto == IPPROTO_SCTP && o.ssl) { -- nsock_connect_ssl(mypool, cs.sock_nsi, connect_handler, -- o.conntimeout, NULL, -- &targetss.sockaddr, targetsslen, -- IPPROTO_SCTP, inet_port(&targetss), -- NULL); -- } --#endif -- else if (o.proto == IPPROTO_SCTP) { -- nsock_connect_sctp(mypool, cs.sock_nsi, connect_handler, -- o.conntimeout, NULL, -- &targetss.sockaddr, targetsslen, -- inet_port(&targetss)); -- } --#ifdef HAVE_OPENSSL -- else if (o.ssl) { -- nsock_connect_ssl(mypool, cs.sock_nsi, connect_handler, -- o.conntimeout, NULL, -- &targetss.sockaddr, targetsslen, -- IPPROTO_TCP, inet_port(&targetss), -- NULL); -- } --#endif -- else { -- nsock_connect_tcp(mypool, cs.sock_nsi, connect_handler, -- o.conntimeout, NULL, -- &targetss.sockaddr, targetsslen, -- inet_port(&targetss)); -+ { -+ /* Add connection to first resolved address. */ -+ try_nsock_connect(mypool, targetaddrs); - } - } else { - /* A proxy connection. */ -@@ -1055,6 +1025,8 @@ int ncat_connect(void) - /* connect */ - rc = nsock_loop(mypool, -1); - -+ free_sockaddr_list(targetaddrs); -+ - if (o.verbose) { - struct timeval end_time; - double time; -@@ -1085,21 +1057,74 @@ static void send_udp_null(nsock_pool nsp - nsock_write(nsp, cs.sock_nsi, write_socket_handler, -1, NULL, NULL_PROBE, length); - } - -+static void try_nsock_connect(nsock_pool nsp, struct sockaddr_list *conn_addr) -+{ -+ if (o.proto == IPPROTO_UDP) { -+ nsock_connect_udp(nsp, cs.sock_nsi, connect_handler, (void *)conn_addr->next, -+ &conn_addr->addr.sockaddr, conn_addr->addrlen, -+ inet_port(&conn_addr->addr)); -+ } -+#ifdef HAVE_OPENSSL -+ else if (o.proto == IPPROTO_SCTP && o.ssl) { -+ nsock_connect_ssl(nsp, cs.sock_nsi, connect_handler, -+ o.conntimeout, (void *)conn_addr->next, -+ &conn_addr->addr.sockaddr, conn_addr->addrlen, -+ IPPROTO_SCTP, inet_port(&conn_addr->addr), -+ NULL); -+ } -+#endif -+ else if (o.proto == IPPROTO_SCTP) { -+ nsock_connect_sctp(nsp, cs.sock_nsi, connect_handler, -+ o.conntimeout, (void *)conn_addr->next, -+ &conn_addr->addr.sockaddr, conn_addr->addrlen, -+ inet_port(&conn_addr->addr)); -+ } -+#ifdef HAVE_OPENSSL -+ else if (o.ssl) { -+ nsock_connect_ssl(nsp, cs.sock_nsi, connect_handler, -+ o.conntimeout, (void *)conn_addr->next, -+ &conn_addr->addr.sockaddr, conn_addr->addrlen, -+ IPPROTO_TCP, inet_port(&conn_addr->addr), -+ NULL); -+ } -+#endif -+ else { -+ nsock_connect_tcp(nsp, cs.sock_nsi, connect_handler, -+ o.conntimeout, (void *)conn_addr->next, -+ &conn_addr->addr.sockaddr, conn_addr->addrlen, -+ inet_port(&conn_addr->addr)); -+ } -+} -+ - static void connect_handler(nsock_pool nsp, nsock_event evt, void *data) - { - enum nse_status status = nse_status(evt); - enum nse_type type = nse_type(evt); -+ struct sockaddr_list *next_addr = (struct sockaddr_list *)data; - - ncat_assert(type == NSE_TYPE_CONNECT || type == NSE_TYPE_CONNECT_SSL); - -- if (status == NSE_STATUS_ERROR) { -- if (!o.zerobyte||o.verbose) -- loguser("%s.\n", socket_strerror(nse_errorcode(evt))); -- exit(1); -- } else if (status == NSE_STATUS_TIMEOUT) { -- if (!o.zerobyte||o.verbose) -- loguser("%s.\n", socket_strerror(ETIMEDOUT)); -- exit(1); -+ if (status == NSE_STATUS_ERROR || status == NSE_STATUS_TIMEOUT) { -+ int errcode = (status == NSE_STATUS_TIMEOUT)?ETIMEDOUT:nse_errorcode(evt); -+ /* If there are more resolved addresses, try connecting to next one */ -+ if (next_addr != NULL) { -+ if (o.verbose) { -+ union sockaddr_u peer; -+ zmem(&peer, sizeof(peer.storage)); -+ nsock_iod_get_communication_info(cs.sock_nsi, NULL, NULL, NULL, -+ &peer.sockaddr, sizeof(peer.storage)); -+ loguser("Connection to %s failed: %s.\n", inet_socktop(&peer), socket_strerror(errcode)); -+ loguser("Trying next address...\n"); -+ } -+ try_nsock_connect(nsp, next_addr); -+ return; -+ } -+ else { -+ free_sockaddr_list(targetaddrs); -+ if (!o.zerobyte||o.verbose) -+ loguser("%s.\n", socket_strerror(errcode)); -+ exit(1); -+ } - } else { - ncat_assert(status == NSE_STATUS_SUCCESS); - } -diff -up nmap-7.30/ncat/ncat_core.c.allresolve nmap-7.30/ncat/ncat_core.c ---- nmap-7.30/ncat/ncat_core.c.allresolve 2016-07-19 12:07:58.000000000 +0200 -+++ nmap-7.30/ncat/ncat_core.c 2016-10-03 10:45:50.689808852 +0200 -@@ -146,8 +146,7 @@ int num_listenaddrs = 0; - union sockaddr_u srcaddr; - size_t srcaddrlen; - --union sockaddr_u targetss; --size_t targetsslen; -+struct sockaddr_list *targetaddrs; - - /* Global options structure. */ - struct options o; -@@ -212,19 +211,23 @@ void options_init(void) - #endif - } - --/* Internal helper for resolve and resolve_numeric. addl_flags is ored into -- hints.ai_flags, so you can add AI_NUMERICHOST. */ -+/* Internal helper for resolve and resolve_numeric. -+ addl_flags is ored into hints.ai_flags, so you can add AI_NUMERICHOST. -+ sl is a pointer to first element of sockaddr linked list, which is always -+ statically allocated. Next list elements are dynamically allocated. -+ If multiple_addrs is false then only first address is returned. */ - static int resolve_internal(const char *hostname, unsigned short port, -- struct sockaddr_storage *ss, size_t *sslen, int af, int addl_flags) -+ struct sockaddr_list *sl, int af, int addl_flags, int multiple_addrs) - { - struct addrinfo hints; - struct addrinfo *result; -+ struct addrinfo *next; -+ struct sockaddr_list **item_ptr = &sl; -+ struct sockaddr_list *new_item; - char portbuf[16]; - int rc; - - ncat_assert(hostname != NULL); -- ncat_assert(ss != NULL); -- ncat_assert(sslen != NULL); - - memset(&hints, 0, sizeof(hints)); - hints.ai_family = af; -@@ -241,8 +244,19 @@ static int resolve_internal(const char * - if (result == NULL) - return EAI_NONAME; - ncat_assert(result->ai_addrlen > 0 && result->ai_addrlen <= (int) sizeof(struct sockaddr_storage)); -- *sslen = result->ai_addrlen; -- memcpy(ss, result->ai_addr, *sslen); -+ for (next = result; next != NULL; next = next->ai_next) { -+ if (*item_ptr == NULL) -+ { -+ *item_ptr = (struct sockaddr_list *)safe_malloc(sizeof(struct sockaddr_list)); -+ (**item_ptr).next = NULL; -+ } -+ new_item = *item_ptr; -+ new_item->addrlen = next->ai_addrlen; -+ memcpy(&new_item->addr.storage, next->ai_addr, next->ai_addrlen); -+ if (!multiple_addrs) -+ break; -+ item_ptr = &new_item->next; -+ } - freeaddrinfo(result); - - return 0; -@@ -261,12 +275,42 @@ int resolve(const char *hostname, unsign - struct sockaddr_storage *ss, size_t *sslen, int af) - { - int flags; -+ struct sockaddr_list sl; -+ int result; - - flags = 0; - if (o.nodns) - flags |= AI_NUMERICHOST; - -- return resolve_internal(hostname, port, ss, sslen, af, flags); -+ result = resolve_internal(hostname, port, &sl, af, flags, 0); -+ *ss = sl.addr.storage; -+ *sslen = sl.addrlen; -+ return result; -+} -+ -+/* Resolves the given hostname or IP address with getaddrinfo, and stores -+ all results into a linked list. -+ The rest of the behavior is same as resolve(). */ -+int resolve_multi(const char *hostname, unsigned short port, -+ struct sockaddr_list *sl, int af) -+{ -+ int flags; -+ -+ flags = 0; -+ if (o.nodns) -+ flags |= AI_NUMERICHOST; -+ -+ return resolve_internal(hostname, port, sl, af, flags, 1); -+} -+ -+void free_sockaddr_list(struct sockaddr_list *sl) -+{ -+ struct sockaddr_list *current, *next = sl; -+ while (next != NULL) { -+ current = next; -+ next = current->next; -+ free(current); -+ } - } - - int fdinfo_close(struct fdinfo *fdn) -diff -up nmap-7.30/ncat/ncat_core.h.allresolve nmap-7.30/ncat/ncat_core.h ---- nmap-7.30/ncat/ncat_core.h.allresolve 2016-07-19 12:07:58.000000000 +0200 -+++ nmap-7.30/ncat/ncat_core.h 2016-10-03 10:45:50.689808852 +0200 -@@ -132,14 +132,20 @@ - a IPV4 INADDR_ANY and a IPV6 in6addr_any at most or a user defined address */ - #define NUM_LISTEN_ADDRS 2 - -+/* Structure to store a linked list of resolved addresses. */ -+struct sockaddr_list { -+ union sockaddr_u addr; -+ size_t addrlen; -+ struct sockaddr_list* next; -+}; -+ - extern union sockaddr_u listenaddrs[NUM_LISTEN_ADDRS]; - extern int num_listenaddrs; - - extern union sockaddr_u srcaddr; - extern size_t srcaddrlen; - --extern union sockaddr_u targetss; --extern size_t targetsslen; -+extern struct sockaddr_list *targetaddrs; - - enum exec_mode { - EXEC_PLAIN, -@@ -228,6 +234,14 @@ void options_init(void); - int resolve(const char *hostname, unsigned short port, - struct sockaddr_storage *ss, size_t *sslen, int af); - -+/* Resolves the given hostname or IP address with getaddrinfo, and stores -+ all results into a linked list. -+ The rest of behavior is same as resolve(). */ -+int resolve_multi(const char *hostname, unsigned short port, -+ struct sockaddr_list *sl, int af); -+ -+void free_sockaddr_list(struct sockaddr_list *sl); -+ - int fdinfo_close(struct fdinfo *fdn); - int fdinfo_recv(struct fdinfo *fdn, char *buf, size_t size); - int fdinfo_send(struct fdinfo *fdn, const char *buf, size_t size); -diff -up nmap-7.30/ncat/ncat_main.c.allresolve nmap-7.30/ncat/ncat_main.c ---- nmap-7.30/ncat/ncat_main.c.allresolve 2016-10-03 10:45:50.687808850 +0200 -+++ nmap-7.30/ncat/ncat_main.c 2016-10-03 10:45:50.690808853 +0200 -@@ -683,15 +683,20 @@ int main(int argc, char *argv[]) - } - #endif /* HAVE_SYS_UN_H */ - -+ /* Create a static target address, because at least one target address must be always allocated */ -+ static struct sockaddr_list statictargetaddr; -+ statictargetaddr.next = NULL; /* List with one item */ -+ targetaddrs = (struct sockaddr_list *)safe_zalloc(sizeof(struct sockaddr_list)); -+ - /* Will be AF_INET or AF_INET6 or AF_UNIX when valid */ -- memset(&targetss.storage, 0, sizeof(targetss.storage)); -- targetss.storage.ss_family = AF_UNSPEC; -- srcaddr.storage = targetss.storage; -+ memset(&srcaddr.storage, 0, sizeof(srcaddr.storage)); -+ srcaddr.storage.ss_family = AF_UNSPEC; -+ targetaddrs->addr.storage = srcaddr.storage; - - /* Clear the listenaddrs array */ - int i; - for (i = 0; i < NUM_LISTEN_ADDRS; i++) { -- listenaddrs[i].storage = targetss.storage; -+ listenaddrs[i].storage = srcaddr.storage; - } - - if (o.proxyaddr) { -@@ -707,12 +712,12 @@ int main(int argc, char *argv[]) - * (due to the colons in the IPv6 address and host:port separator). - */ - -- targetsslen = parseproxy(o.proxyaddr, -- &targetss.storage, &targetsslen, &proxyport); -+ targetaddrs->addrlen = parseproxy(o.proxyaddr, -+ &targetaddrs->addr.sockaddr, &targetaddrs->addrlen, &proxyport); - if (o.af == AF_INET) { -- targetss.in.sin_port = htons(proxyport); -+ targetaddrs->addr.in.sin_port = htons(proxyport); - } else { // might modify to else if and test AF_{INET6|UNIX|UNSPEC} -- targetss.in6.sin6_port = htons(proxyport); -+ targetaddrs->addr.in6.sin6_port = htons(proxyport); - } - } else { - bye("Invalid proxy type \"%s\".", o.proxytype); -@@ -791,10 +796,10 @@ int main(int argc, char *argv[]) - } else { - #if HAVE_SYS_UN_H - if (o.af == AF_UNIX) { -- memset(&targetss.storage, 0, sizeof(struct sockaddr_un)); -- targetss.un.sun_family = AF_UNIX; -- strncpy(targetss.un.sun_path, argv[optind], sizeof(targetss.un.sun_path)); -- targetsslen = SUN_LEN(&targetss.un); -+ memset(&targetaddrs->addr.storage, 0, sizeof(struct sockaddr_un)); -+ targetaddrs->addr.un.sun_family = AF_UNIX; -+ strncpy(targetaddrs->addr.un.sun_path, argv[optind], sizeof(targetaddrs->addr.un.sun_path)); -+ targetaddrs->addrlen = SUN_LEN(&targetaddrs->addr.un); - o.target = argv[optind]; - optind++; - } else -@@ -808,7 +813,7 @@ int main(int argc, char *argv[]) - * targetss contains data already and you don't want remove them - */ - if( !o.proxytype -- && (rc = resolve(o.target, 0, &targetss.storage, &targetsslen, o.af)) != 0) -+ && (rc = resolve_multi(o.target, 0, targetaddrs, o.af)) != 0) - - bye("Could not resolve hostname \"%s\": %s.", o.target, gai_strerror(rc)); - optind++; -@@ -846,21 +851,28 @@ int main(int argc, char *argv[]) - - if (o.proxytype && !o.listen) - ; /* Do nothing - port is already set to proxyport */ -- else if (targetss.storage.ss_family == AF_INET) -- targetss.in.sin_port = htons(o.portno); -+ else { -+ struct sockaddr_list *targetaddrs_item = targetaddrs; -+ while (targetaddrs_item != NULL) -+ { -+ if (targetaddrs_item->addr.storage.ss_family == AF_INET) -+ targetaddrs_item->addr.in.sin_port = htons(o.portno); - #ifdef HAVE_IPV6 -- else if (targetss.storage.ss_family == AF_INET6) -- targetss.in6.sin6_port = htons(o.portno); -+ else if (targetaddrs_item->addr.storage.ss_family == AF_INET6) -+ targetaddrs_item->addr.in6.sin6_port = htons(o.portno); - #endif - #if HAVE_SYS_UN_H -- /* If we use Unix domain sockets, we have to count with them. */ -- else if (targetss.storage.ss_family == AF_UNIX) -- ; /* Do nothing. */ -+ /* If we use Unix domain sockets, we have to count with them. */ -+ else if (targetaddrs_item->addr.storage.ss_family == AF_UNIX) -+ ; /* Do nothing. */ - #endif -- else if (targetss.storage.ss_family == AF_UNSPEC) -- ; /* Leave unspecified. */ -- else -- bye("Unknown address family %d.", targetss.storage.ss_family); -+ else if (targetaddrs_item->addr.storage.ss_family == AF_UNSPEC) -+ ; /* Leave unspecified. */ -+ else -+ bye("Unknown address family %d.", targetaddrs_item->addr.storage.ss_family); -+ targetaddrs_item = targetaddrs_item->next; -+ } -+ } - - if (srcport != -1) { - if (o.listen) { -@@ -872,7 +884,7 @@ int main(int argc, char *argv[]) - /* We have a source port but not an explicit source address; - fill in an unspecified address of the same family as the - target. */ -- srcaddr.storage.ss_family = targetss.storage.ss_family; -+ srcaddr.storage.ss_family = targetaddrs->addr.storage.ss_family; - if (srcaddr.storage.ss_family == AF_INET) - srcaddr.in.sin_addr.s_addr = INADDR_ANY; - else if (srcaddr.storage.ss_family == AF_INET6) -@@ -964,8 +976,8 @@ static int ncat_listen_mode(void) - bye("/bin/sh is not executable, so `-c' won't work."); - #endif - -- if (targetss.storage.ss_family != AF_UNSPEC) { -- listenaddrs[num_listenaddrs++] = targetss; -+ if (targetaddrs->addr.storage.ss_family != AF_UNSPEC) { -+ listenaddrs[num_listenaddrs++] = targetaddrs->addr; - } else { - size_t ss_len; - int rc; -diff -up nmap-7.30/ncat/util.c.allresolve nmap-7.30/ncat/util.c ---- nmap-7.30/ncat/util.c.allresolve 2016-04-04 17:38:44.000000000 +0200 -+++ nmap-7.30/ncat/util.c 2016-10-03 10:45:50.690808853 +0200 -@@ -503,7 +503,7 @@ int do_connect(int type) - /* We need a socket that can be inherited by child processes in - ncat_exec_win.c, for --exec and --sh-exec. inheritable_socket is from - nbase. */ -- sock = inheritable_socket(targetss.storage.ss_family, type, 0); -+ sock = inheritable_socket(targetaddrs->addr.storage.ss_family, type, 0); - - if (srcaddr.storage.ss_family != AF_UNSPEC) { - size_t sa_len; -@@ -520,7 +520,7 @@ int do_connect(int type) - } - - if (sock != -1) { -- if (connect(sock, &targetss.sockaddr, (int) targetsslen) != -1) -+ if (connect(sock, &targetaddrs->addr.sockaddr, (int) targetaddrs->addrlen) != -1) - return sock; - else if (socket_errno() == EINPROGRESS || socket_errno() == EAGAIN) - return sock; diff --git a/nmap.spec b/nmap.spec index bffe305..b304dbb 100644 --- a/nmap.spec +++ b/nmap.spec @@ -5,9 +5,9 @@ Summary: Network exploration tool and security scanner Name: nmap Epoch: 2 -Version: 7.40 +Version: 7.50 #global prerelease TEST5 -Release: 2%{?dist} +Release: 1%{?dist} # Uses combination of licenses based on GPL license, but with extra modification # so it got its own license tag rhbz#1055861 License: Nmap @@ -28,8 +28,6 @@ Patch2: nmap-4.52-noms.patch Patch5: ncat_reg_stdin.diff Patch6: nmap-6.25-displayerror.patch -#sent upstream, rhbz#978964 -Patch8: nmap-6.40-allresolve.patch URL: http://nmap.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -82,7 +80,6 @@ uses. %patch2 -p1 -b .noms %patch5 -p1 -b .ncat_reg_stdin %patch6 -p1 -b .displayerror -%patch8 -p1 -b .allresolve # for aarch64 support, not needed with autotools 2.69+ for f in acinclude.m4 configure.ac nping/configure.ac @@ -221,6 +218,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/xnmap.1.gz %changelog +* Wed Jun 21 2017 Pavel Zhukov - 2:7.50-1 +- New release (7.50) + * Fri Feb 10 2017 Fedora Release Engineering - 2:7.40-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild diff --git a/nmapfe-32.png b/nmapfe-32.png deleted file mode 100644 index b0ca8f2ac9aa4b5e807fb7e417511f963f50666b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2607 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 diff --git a/sources b/sources index aca99a0..ad17c62 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nmap-7.40.tar.bz2) = 98e37bf1c29789ea19ee4542d719ed6970c8bcc1bf92af4948a52a75273c2403329149f6b5df6368c23840d1bb3f47af9e5ce543f7a36596a33896609574f02d +SHA512 (nmap-7.50.tar.bz2) = b74c5711f03bae363164cdb7e62923ab938c81c7bbcd080eaa2d1acc89f09eb0a7e0f5deb9628b81057c7a35ecd487a2d09dfe3b58b0db6c84cf0b39f526e5f2