Update to 7.91
This commit is contained in:
		
							parent
							
								
									29fdaff88f
								
							
						
					
					
						commit
						8ff6f85b18
					
				
							
								
								
									
										6
									
								
								nmap-7.91.tar.bz2.asc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								nmap-7.91.tar.bz2.asc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
-----BEGIN PGP SIGNATURE-----
 | 
			
		||||
 | 
			
		||||
iF0EABECAB0WIQRDbWarmnmEJf2g4/gBr58Da5NV0AUCX4IG7AAKCRABr58Da5NV
 | 
			
		||||
0En1AJ40wogwUYKdlVLFaPWl9LPSuNmJ5QCfR6Y8/9JBvs+w6rklBmN/zTcIcX0=
 | 
			
		||||
=/xYe
 | 
			
		||||
-----END PGP SIGNATURE-----
 | 
			
		||||
@ -1,8 +1,20 @@
 | 
			
		||||
From 28bfe0dfd26dbc4e9917db9ad5457ab496769d24 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: dmiller <dmiller@e0a8ed71-7df4-0310-8962-fdc924857419>
 | 
			
		||||
Date: Thu, 7 Jan 2021 17:52:24 +0000
 | 
			
		||||
Subject: [PATCH] Use checked versions of FD_* macros. Closes #2202
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 ncat/ncat_core.c   |  2 +-
 | 
			
		||||
 ncat/ncat_listen.c | 78 +++++++++++++++++++++++-----------------------
 | 
			
		||||
 ncat/ncat_posix.c  |  8 ++---
 | 
			
		||||
 ncat/ncat_proxy.c  | 12 +++----
 | 
			
		||||
 5 files changed, 53 insertions(+), 50 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/ncat/ncat_core.c b/ncat/ncat_core.c
 | 
			
		||||
index f734247..b76d5ea 100644
 | 
			
		||||
index d1a88ac946..7c39e5d360 100644
 | 
			
		||||
--- a/ncat/ncat_core.c
 | 
			
		||||
+++ b/ncat/ncat_core.c
 | 
			
		||||
@@ -498,7 +498,7 @@ int ncat_broadcast(fd_set *fds, const fd_list_t *fdlist, const char *msg, size_t
 | 
			
		||||
@@ -431,7 +431,7 @@ int ncat_broadcast(fd_set *fds, const fd_list_t *fdlist, const char *msg, size_t
 | 
			
		||||
 
 | 
			
		||||
     ret = 0;
 | 
			
		||||
     for (i = 0; i <= fdlist->fdmax; i++) {
 | 
			
		||||
@ -12,10 +24,10 @@ index f734247..b76d5ea 100644
 | 
			
		||||
 
 | 
			
		||||
         fdn = get_fdinfo(fdlist, i);
 | 
			
		||||
diff --git a/ncat/ncat_listen.c b/ncat/ncat_listen.c
 | 
			
		||||
index 1e0c22f..bf4d54f 100644
 | 
			
		||||
index 84ece94d08..e6dad13597 100644
 | 
			
		||||
--- a/ncat/ncat_listen.c
 | 
			
		||||
+++ b/ncat/ncat_listen.c
 | 
			
		||||
@@ -312,10 +312,10 @@ static int ncat_listen_stream(int proto)
 | 
			
		||||
@@ -244,10 +244,10 @@ static int ncat_listen_stream(int proto)
 | 
			
		||||
         unblock_socket(listen_socket[num_sockets]);
 | 
			
		||||
 
 | 
			
		||||
         /* setup select sets and max fd */
 | 
			
		||||
@ -28,64 +40,61 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
 
 | 
			
		||||
         num_sockets++;
 | 
			
		||||
     }
 | 
			
		||||
@@ -368,7 +368,7 @@ static int ncat_listen_stream(int proto)
 | 
			
		||||
          */
 | 
			
		||||
         for (i = 0; i <= client_fdlist.fdmax && fds_ready > 0; i++) {
 | 
			
		||||
@@ -296,7 +296,7 @@ static int ncat_listen_stream(int proto)
 | 
			
		||||
             struct fdinfo *fdi = &client_fdlist.fds[i];
 | 
			
		||||
             int cfd = fdi->fd;
 | 
			
		||||
             /* Loop through descriptors until there's something to read */
 | 
			
		||||
-            if (!FD_ISSET(i, &readfds) && !FD_ISSET(i, &writefds))
 | 
			
		||||
+            if (!checked_fd_isset(i, &readfds) && !checked_fd_isset(i, &writefds))
 | 
			
		||||
-            if (!FD_ISSET(cfd, &readfds) && !FD_ISSET(cfd, &writefds))
 | 
			
		||||
+            if (!checked_fd_isset(cfd, &readfds) && !checked_fd_isset(cfd, &writefds))
 | 
			
		||||
                 continue;
 | 
			
		||||
 
 | 
			
		||||
             if (o.debug > 1)
 | 
			
		||||
@@ -376,30 +376,30 @@ static int ncat_listen_stream(int proto)
 | 
			
		||||
@@ -304,27 +304,27 @@ static int ncat_listen_stream(int proto)
 | 
			
		||||
 
 | 
			
		||||
 #ifdef HAVE_OPENSSL
 | 
			
		||||
             /* Is this an ssl socket pending a handshake? If so handle it. */
 | 
			
		||||
-            if (o.ssl && FD_ISSET(i, &sslpending_fds)) {
 | 
			
		||||
+            if (o.ssl && checked_fd_isset(i, &sslpending_fds)) {
 | 
			
		||||
                 struct fdinfo *fdi = NULL;
 | 
			
		||||
-                FD_CLR(i, &master_readfds);
 | 
			
		||||
-                FD_CLR(i, &master_writefds);
 | 
			
		||||
+                checked_fd_clr(i, &master_readfds);
 | 
			
		||||
+                checked_fd_clr(i, &master_writefds);
 | 
			
		||||
                 fdi = get_fdinfo(&client_fdlist, i);
 | 
			
		||||
                 ncat_assert(fdi != NULL);
 | 
			
		||||
-            if (o.ssl && FD_ISSET(cfd, &sslpending_fds)) {
 | 
			
		||||
-                FD_CLR(cfd, &master_readfds);
 | 
			
		||||
-                FD_CLR(cfd, &master_writefds);
 | 
			
		||||
+            if (o.ssl && checked_fd_isset(cfd, &sslpending_fds)) {
 | 
			
		||||
+                checked_fd_clr(cfd, &master_readfds);
 | 
			
		||||
+                checked_fd_clr(cfd, &master_writefds);
 | 
			
		||||
                 switch (ssl_handshake(fdi)) {
 | 
			
		||||
                 case NCAT_SSL_HANDSHAKE_COMPLETED:
 | 
			
		||||
                     /* Clear from sslpending_fds once ssl is established */
 | 
			
		||||
-                    FD_CLR(i, &sslpending_fds);
 | 
			
		||||
+                    checked_fd_clr(i, &sslpending_fds);
 | 
			
		||||
-                    FD_CLR(cfd, &sslpending_fds);
 | 
			
		||||
+                    checked_fd_clr(cfd, &sslpending_fds);
 | 
			
		||||
                     post_handle_connection(*fdi);
 | 
			
		||||
                     break;
 | 
			
		||||
                 case NCAT_SSL_HANDSHAKE_PENDING_WRITE:
 | 
			
		||||
-                    FD_SET(i, &master_writefds);
 | 
			
		||||
+                    checked_fd_set(i, &master_writefds);
 | 
			
		||||
-                    FD_SET(cfd, &master_writefds);
 | 
			
		||||
+                    checked_fd_set(cfd, &master_writefds);
 | 
			
		||||
                     break;
 | 
			
		||||
                 case NCAT_SSL_HANDSHAKE_PENDING_READ:
 | 
			
		||||
-                    FD_SET(i, &master_readfds);
 | 
			
		||||
+                    checked_fd_set(i, &master_readfds);
 | 
			
		||||
-                    FD_SET(cfd, &master_readfds);
 | 
			
		||||
+                    checked_fd_set(cfd, &master_readfds);
 | 
			
		||||
                     break;
 | 
			
		||||
                 case NCAT_SSL_HANDSHAKE_FAILED:
 | 
			
		||||
                 default:
 | 
			
		||||
                     SSL_free(fdi->ssl);
 | 
			
		||||
                     Close(fdi->fd);
 | 
			
		||||
-                    FD_CLR(i, &sslpending_fds);
 | 
			
		||||
-                    FD_CLR(i, &master_readfds);
 | 
			
		||||
+                    checked_fd_clr(i, &sslpending_fds);
 | 
			
		||||
+                    checked_fd_clr(i, &master_readfds);
 | 
			
		||||
                     rm_fd(&client_fdlist, i);
 | 
			
		||||
                     /* Are we in single listening mode(without -k)? If so
 | 
			
		||||
                        then we should quit also. */
 | 
			
		||||
@@ -410,7 +410,7 @@ static int ncat_listen_stream(int proto)
 | 
			
		||||
-                    FD_CLR(cfd, &sslpending_fds);
 | 
			
		||||
-                    FD_CLR(cfd, &master_readfds);
 | 
			
		||||
+                    checked_fd_clr(cfd, &sslpending_fds);
 | 
			
		||||
+                    checked_fd_clr(cfd, &master_readfds);
 | 
			
		||||
                     rm_fd(&client_fdlist, cfd);
 | 
			
		||||
                     /* Since we removed this one, start loop over at the beginning.
 | 
			
		||||
                      * Wastes a little time, but ensures correctness.
 | 
			
		||||
@@ -339,7 +339,7 @@ static int ncat_listen_stream(int proto)
 | 
			
		||||
                 }
 | 
			
		||||
             } else
 | 
			
		||||
 #endif
 | 
			
		||||
-            if (FD_ISSET(i, &listen_fds)) {
 | 
			
		||||
+            if (checked_fd_isset(i, &listen_fds)) {
 | 
			
		||||
-            if (FD_ISSET(cfd, &listen_fds)) {
 | 
			
		||||
+            if (checked_fd_isset(cfd, &listen_fds)) {
 | 
			
		||||
                 /* we have a new connection request */
 | 
			
		||||
                 handle_connection(i);
 | 
			
		||||
             } else if (i == STDIN_FILENO) {
 | 
			
		||||
@@ -490,7 +490,7 @@ static void handle_connection(int socket_accept)
 | 
			
		||||
                 handle_connection(cfd);
 | 
			
		||||
             } else if (cfd == STDIN_FILENO) {
 | 
			
		||||
@@ -424,7 +424,7 @@ static void handle_connection(int socket_accept)
 | 
			
		||||
         int i;
 | 
			
		||||
         for (i = 0; i < num_listenaddrs; i++) {
 | 
			
		||||
             Close(listen_socket[i]);
 | 
			
		||||
@ -94,7 +103,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
             rm_fd(&client_fdlist, listen_socket[i]);
 | 
			
		||||
         }
 | 
			
		||||
     }
 | 
			
		||||
@@ -528,9 +528,9 @@ static void handle_connection(int socket_accept)
 | 
			
		||||
@@ -468,9 +468,9 @@ static void handle_connection(int socket_accept)
 | 
			
		||||
 #ifdef HAVE_OPENSSL
 | 
			
		||||
     if (o.ssl) {
 | 
			
		||||
         /* Add the socket to the necessary descriptor lists. */
 | 
			
		||||
@ -107,7 +116,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
         /* Add it to our list of fds too for maintaining maxfd. */
 | 
			
		||||
         if (add_fdinfo(&client_fdlist, &s) < 0)
 | 
			
		||||
             bye("add_fdinfo() failed.");
 | 
			
		||||
@@ -563,10 +563,10 @@ static void post_handle_connection(struct fdinfo sinfo)
 | 
			
		||||
@@ -503,10 +503,10 @@ static void post_handle_connection(struct fdinfo sinfo)
 | 
			
		||||
     } else {
 | 
			
		||||
         /* Now that a client is connected, pay attention to stdin. */
 | 
			
		||||
         if (!stdin_eof)
 | 
			
		||||
@ -120,7 +129,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
             /* add it to our list of fds for maintaining maxfd */
 | 
			
		||||
 #ifdef HAVE_OPENSSL
 | 
			
		||||
             /* Don't add it twice (see handle_connection above) */
 | 
			
		||||
@@ -578,7 +578,7 @@ static void post_handle_connection(struct fdinfo sinfo)
 | 
			
		||||
@@ -518,7 +518,7 @@ static void post_handle_connection(struct fdinfo sinfo)
 | 
			
		||||
             }
 | 
			
		||||
 #endif
 | 
			
		||||
         }
 | 
			
		||||
@ -129,7 +138,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
         if (add_fdinfo(&broadcast_fdlist, &sinfo) < 0)
 | 
			
		||||
             bye("add_fdinfo() failed.");
 | 
			
		||||
 
 | 
			
		||||
@@ -603,7 +603,7 @@ int read_stdin(void)
 | 
			
		||||
@@ -543,7 +543,7 @@ int read_stdin(void)
 | 
			
		||||
             logdebug("EOF on stdin\n");
 | 
			
		||||
 
 | 
			
		||||
         /* Don't close the file because that allows a socket to be fd 0. */
 | 
			
		||||
@ -138,7 +147,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
         /* Buf mark that we've seen EOF so it doesn't get re-added to the
 | 
			
		||||
            select list. */
 | 
			
		||||
         stdin_eof = 1;
 | 
			
		||||
@@ -656,14 +656,14 @@ int read_socket(int recv_fd)
 | 
			
		||||
@@ -596,14 +596,14 @@ int read_socket(int recv_fd)
 | 
			
		||||
             }
 | 
			
		||||
 #endif
 | 
			
		||||
             close(recv_fd);
 | 
			
		||||
@ -156,7 +165,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
 
 | 
			
		||||
             return n;
 | 
			
		||||
         }
 | 
			
		||||
@@ -753,7 +753,7 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
@@ -693,7 +693,7 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
                 logdebug("do_listen(\"%s\"): %s\n", inet_ntop_ez(&listenaddrs[i].storage, sizeof(listenaddrs[i].storage)), socket_strerror(socket_errno()));
 | 
			
		||||
             continue;
 | 
			
		||||
         }
 | 
			
		||||
@ -165,7 +174,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
         add_fd(&listen_fdlist, sockfd[num_sockets].fd);
 | 
			
		||||
         sockfd[num_sockets].addr = listenaddrs[i];
 | 
			
		||||
         num_sockets++;
 | 
			
		||||
@@ -773,14 +773,14 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
@@ -713,14 +713,14 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
 
 | 
			
		||||
         if (fdn != -1) {
 | 
			
		||||
             /*remove socket descriptor which is burnt */
 | 
			
		||||
@ -182,7 +191,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
             add_fd(&listen_fdlist, sockfd[fdn].fd);
 | 
			
		||||
 
 | 
			
		||||
         }
 | 
			
		||||
@@ -818,7 +818,7 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
@@ -758,7 +758,7 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
              */
 | 
			
		||||
             for (i = 0; i <= listen_fdlist.fdmax && fds_ready > 0; i++) {
 | 
			
		||||
                 /* Loop through descriptors until there is something ready */
 | 
			
		||||
@ -191,7 +200,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
                     continue;
 | 
			
		||||
 
 | 
			
		||||
                 /* Check each listening socket */
 | 
			
		||||
@@ -911,8 +911,8 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
@@ -856,8 +856,8 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
             continue;
 | 
			
		||||
         }
 | 
			
		||||
 
 | 
			
		||||
@ -202,7 +211,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
         fdmax = socket_n;
 | 
			
		||||
 
 | 
			
		||||
         /* stdin -> socket and socket -> stdout */
 | 
			
		||||
@@ -932,7 +932,7 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
@@ -877,7 +877,7 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
             if (fds_ready == 0)
 | 
			
		||||
                 bye("Idle timeout expired (%d ms).", o.idletimeout);
 | 
			
		||||
 
 | 
			
		||||
@ -211,7 +220,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
                 nbytes = Read(STDIN_FILENO, buf, sizeof(buf));
 | 
			
		||||
                 if (nbytes <= 0) {
 | 
			
		||||
                     if (nbytes < 0 && o.verbose) {
 | 
			
		||||
@@ -940,7 +940,7 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
@@ -885,7 +885,7 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
                     } else if (nbytes == 0 && o.debug) {
 | 
			
		||||
                         logdebug("EOF on stdin\n");
 | 
			
		||||
                     }
 | 
			
		||||
@ -220,7 +229,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
                     if (nbytes < 0)
 | 
			
		||||
                         return 1;
 | 
			
		||||
                     continue;
 | 
			
		||||
@@ -964,7 +964,7 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
@@ -909,7 +909,7 @@ static int ncat_listen_dgram(int proto)
 | 
			
		||||
                     tempbuf = NULL;
 | 
			
		||||
                 }
 | 
			
		||||
             }
 | 
			
		||||
@ -229,7 +238,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
                 nbytes = recv(socket_n, buf, sizeof(buf), 0);
 | 
			
		||||
                 if (nbytes < 0) {
 | 
			
		||||
                     loguser("%s.\n", socket_strerror(socket_errno()));
 | 
			
		||||
@@ -1048,7 +1048,7 @@ static void read_and_broadcast(int recv_fd)
 | 
			
		||||
@@ -993,7 +993,7 @@ static void read_and_broadcast(int recv_fd)
 | 
			
		||||
 
 | 
			
		||||
                 /* Don't close the file because that allows a socket to be
 | 
			
		||||
                    fd 0. */
 | 
			
		||||
@ -238,7 +247,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
                 /* But mark that we've seen EOF so it doesn't get re-added to
 | 
			
		||||
                    the select list. */
 | 
			
		||||
                 stdin_eof = 1;
 | 
			
		||||
@@ -1075,14 +1075,14 @@ static void read_and_broadcast(int recv_fd)
 | 
			
		||||
@@ -1020,14 +1020,14 @@ static void read_and_broadcast(int recv_fd)
 | 
			
		||||
                 }
 | 
			
		||||
 #endif
 | 
			
		||||
                 close(recv_fd);
 | 
			
		||||
@ -256,7 +265,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
 
 | 
			
		||||
                 if (o.chat)
 | 
			
		||||
                     chat_announce_disconnect(recv_fd);
 | 
			
		||||
@@ -1113,7 +1113,7 @@ static void read_and_broadcast(int recv_fd)
 | 
			
		||||
@@ -1058,7 +1058,7 @@ static void read_and_broadcast(int recv_fd)
 | 
			
		||||
 
 | 
			
		||||
         /* Send to everyone except the one who sent this message. */
 | 
			
		||||
         broadcastfds = master_broadcastfds;
 | 
			
		||||
@ -265,7 +274,7 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
         ncat_broadcast(&broadcastfds, &broadcast_fdlist, outbuf, n);
 | 
			
		||||
 
 | 
			
		||||
         free(chatbuf);
 | 
			
		||||
@@ -1128,7 +1128,7 @@ static void shutdown_sockets(int how)
 | 
			
		||||
@@ -1073,7 +1073,7 @@ static void shutdown_sockets(int how)
 | 
			
		||||
     int i;
 | 
			
		||||
 
 | 
			
		||||
     for (i = 0; i <= broadcast_fdlist.fdmax; i++) {
 | 
			
		||||
@ -274,20 +283,20 @@ index 1e0c22f..bf4d54f 100644
 | 
			
		||||
             continue;
 | 
			
		||||
 
 | 
			
		||||
         fdn = get_fdinfo(&broadcast_fdlist, i);
 | 
			
		||||
@@ -1153,7 +1153,7 @@ static int chat_announce_connect(int fd, const union sockaddr_u *su)
 | 
			
		||||
         union sockaddr_u su;
 | 
			
		||||
         socklen_t len = sizeof(su.storage);
 | 
			
		||||
@@ -1098,7 +1098,7 @@ static int chat_announce_connect(int fd, const union sockaddr_u *su)
 | 
			
		||||
         union sockaddr_u tsu;
 | 
			
		||||
         socklen_t len = sizeof(tsu.storage);
 | 
			
		||||
 
 | 
			
		||||
-        if (i == fd || !FD_ISSET(i, &master_broadcastfds))
 | 
			
		||||
+        if (i == fd || !checked_fd_isset(i, &master_broadcastfds))
 | 
			
		||||
             continue;
 | 
			
		||||
 
 | 
			
		||||
         if (getpeername(i, &su.sockaddr, &len) == -1)
 | 
			
		||||
         if (getpeername(i, &tsu.sockaddr, &len) == -1)
 | 
			
		||||
diff --git a/ncat/ncat_posix.c b/ncat/ncat_posix.c
 | 
			
		||||
index 12207c0..9709e63 100644
 | 
			
		||||
index b9fc3bc0b3..4f5641e4ac 100644
 | 
			
		||||
--- a/ncat/ncat_posix.c
 | 
			
		||||
+++ b/ncat/ncat_posix.c
 | 
			
		||||
@@ -273,8 +273,8 @@ void netexec(struct fdinfo *info, char *cmdexec)
 | 
			
		||||
@@ -205,8 +205,8 @@ void netexec(struct fdinfo *info, char *cmdexec)
 | 
			
		||||
         int r, n_r;
 | 
			
		||||
 
 | 
			
		||||
         FD_ZERO(&fds);
 | 
			
		||||
@ -298,7 +307,7 @@ index 12207c0..9709e63 100644
 | 
			
		||||
 
 | 
			
		||||
         r = fselect(maxfd + 1, &fds, NULL, NULL, NULL);
 | 
			
		||||
         if (r == -1) {
 | 
			
		||||
@@ -283,7 +283,7 @@ void netexec(struct fdinfo *info, char *cmdexec)
 | 
			
		||||
@@ -215,7 +215,7 @@ void netexec(struct fdinfo *info, char *cmdexec)
 | 
			
		||||
             else
 | 
			
		||||
                 break;
 | 
			
		||||
         }
 | 
			
		||||
@ -307,7 +316,7 @@ index 12207c0..9709e63 100644
 | 
			
		||||
             int pending;
 | 
			
		||||
 
 | 
			
		||||
             do {
 | 
			
		||||
@@ -293,7 +293,7 @@ void netexec(struct fdinfo *info, char *cmdexec)
 | 
			
		||||
@@ -225,7 +225,7 @@ void netexec(struct fdinfo *info, char *cmdexec)
 | 
			
		||||
                 write_loop(child_stdin[1], buf, n_r);
 | 
			
		||||
             } while (pending);
 | 
			
		||||
         }
 | 
			
		||||
@ -317,10 +326,10 @@ index 12207c0..9709e63 100644
 | 
			
		||||
             n_r = read(child_stdout[0], buf, sizeof(buf));
 | 
			
		||||
             if (n_r <= 0)
 | 
			
		||||
diff --git a/ncat/ncat_proxy.c b/ncat/ncat_proxy.c
 | 
			
		||||
index 72fe2ea..51ad9c4 100644
 | 
			
		||||
index 5ba10a61ad..befcf902a5 100644
 | 
			
		||||
--- a/ncat/ncat_proxy.c
 | 
			
		||||
+++ b/ncat/ncat_proxy.c
 | 
			
		||||
@@ -234,7 +234,7 @@ int ncat_http_server(void)
 | 
			
		||||
@@ -166,7 +166,7 @@ int ncat_http_server(void)
 | 
			
		||||
         unblock_socket(listen_socket[num_sockets]);
 | 
			
		||||
 
 | 
			
		||||
         /* setup select sets and max fd */
 | 
			
		||||
@ -329,7 +338,7 @@ index 72fe2ea..51ad9c4 100644
 | 
			
		||||
         add_fd(&listen_fdlist, listen_socket[num_sockets]);
 | 
			
		||||
 
 | 
			
		||||
         num_sockets++;
 | 
			
		||||
@@ -267,7 +267,7 @@ int ncat_http_server(void)
 | 
			
		||||
@@ -199,7 +199,7 @@ int ncat_http_server(void)
 | 
			
		||||
 
 | 
			
		||||
         for (i = 0; i <= listen_fdlist.fdmax && fds_ready > 0; i++) {
 | 
			
		||||
             /* Loop through descriptors until there is something ready */
 | 
			
		||||
@ -338,7 +347,7 @@ index 72fe2ea..51ad9c4 100644
 | 
			
		||||
                 continue;
 | 
			
		||||
 
 | 
			
		||||
             /* Check each listening socket */
 | 
			
		||||
@@ -525,8 +525,8 @@ static int handle_connect(struct socket_buffer *client_sock,
 | 
			
		||||
@@ -457,8 +457,8 @@ static int handle_connect(struct socket_buffer *client_sock,
 | 
			
		||||
 
 | 
			
		||||
     maxfd = client_sock->fdn.fd < s ? s : client_sock->fdn.fd;
 | 
			
		||||
     FD_ZERO(&m);
 | 
			
		||||
@ -349,7 +358,7 @@ index 72fe2ea..51ad9c4 100644
 | 
			
		||||
 
 | 
			
		||||
     errno = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -540,7 +540,7 @@ static int handle_connect(struct socket_buffer *client_sock,
 | 
			
		||||
@@ -472,7 +472,7 @@ static int handle_connect(struct socket_buffer *client_sock,
 | 
			
		||||
 
 | 
			
		||||
         zmem(buf, sizeof(buf));
 | 
			
		||||
 
 | 
			
		||||
@ -358,7 +367,7 @@ index 72fe2ea..51ad9c4 100644
 | 
			
		||||
             do {
 | 
			
		||||
                 do {
 | 
			
		||||
                     len = fdinfo_recv(&client_sock->fdn, buf, sizeof(buf));
 | 
			
		||||
@@ -556,7 +556,7 @@ static int handle_connect(struct socket_buffer *client_sock,
 | 
			
		||||
@@ -488,7 +488,7 @@ static int handle_connect(struct socket_buffer *client_sock,
 | 
			
		||||
             } while (fdinfo_pending(&client_sock->fdn));
 | 
			
		||||
         }
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
@ -1,32 +0,0 @@
 | 
			
		||||
From 33f421fd6e68fcb8ed50071661d9704717c81b2b Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: dmiller <dmiller@e0a8ed71-7df4-0310-8962-fdc924857419>
 | 
			
		||||
Date: Tue, 3 Dec 2019 17:04:13 +0000
 | 
			
		||||
Subject: [PATCH] Avoid assertion failure when unsolicited ARP response
 | 
			
		||||
 received
 | 
			
		||||
 | 
			
		||||
We probably want a more explicit handling of the case where we get an
 | 
			
		||||
ARP response to a request that we did not send (system's own, or another
 | 
			
		||||
Nmap scan running at the same time). In any case, this ought to solve
 | 
			
		||||
the crashes reported as #1797 and #1764.
 | 
			
		||||
---
 | 
			
		||||
 scan_engine.cc | 7 ++++++-
 | 
			
		||||
 1 file changed, 6 insertions(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/scan_engine.cc b/scan_engine.cc
 | 
			
		||||
index bd73cc8ead..7a4766da26 100644
 | 
			
		||||
--- a/scan_engine.cc
 | 
			
		||||
+++ b/scan_engine.cc
 | 
			
		||||
@@ -1275,7 +1275,12 @@ int UltraScanInfo::removeCompletedHosts() {
 | 
			
		||||
       }
 | 
			
		||||
       if (timedout)
 | 
			
		||||
         gstats->num_hosts_timedout++;
 | 
			
		||||
-      hss->target->stopTimeOutClock(&now);
 | 
			
		||||
+      /* We may have received an ARP response before we sent a probe, which
 | 
			
		||||
+       * would mean the timeout clock is not running. Avoid an assertion
 | 
			
		||||
+       * failure here by checking first.  */
 | 
			
		||||
+      if (hss->target->timeOutClockRunning()) {
 | 
			
		||||
+        hss->target->stopTimeOutClock(&now);
 | 
			
		||||
+      }
 | 
			
		||||
     }
 | 
			
		||||
   }
 | 
			
		||||
   return hostsRemoved;
 | 
			
		||||
							
								
								
									
										16
									
								
								nmap.spec
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								nmap.spec
									
									
									
									
									
								
							@ -5,9 +5,9 @@
 | 
			
		||||
 | 
			
		||||
Name: nmap
 | 
			
		||||
Epoch: 3
 | 
			
		||||
Version: 7.80
 | 
			
		||||
Version: 7.91
 | 
			
		||||
#global prerelease TEST5
 | 
			
		||||
Release: 11%{?dist}
 | 
			
		||||
Release: 1%{?dist}
 | 
			
		||||
Summary: Network exploration tool and security scanner
 | 
			
		||||
URL: http://nmap.org/
 | 
			
		||||
# Uses combination of licenses based on GPL license, but with extra modification
 | 
			
		||||
@ -28,11 +28,10 @@ Patch2: nmap-4.52-noms.patch
 | 
			
		||||
# upstream provided patch for rhbz#845005, not yet in upstream repository
 | 
			
		||||
Patch3: ncat_reg_stdin.diff
 | 
			
		||||
Patch4: nmap-6.25-displayerror.patch
 | 
			
		||||
# https://github.com/nmap/nmap/commit/33f421fd6e68fcb8ed50071661d9704717c81b2b.patch
 | 
			
		||||
Patch5: nmap-unsolicited_arp_assert.patch
 | 
			
		||||
Patch6: nmap-safe_fd_functions.patch
 | 
			
		||||
# https://github.com/nmap/nmap/pull/2247
 | 
			
		||||
Patch7: nmap_resolve_config.patch
 | 
			
		||||
## https://github.com/nmap/nmap/commit/28bfe0dfd26dbc4e9917db9ad5457ab496769d24.patch
 | 
			
		||||
Patch9: nmap-safe_fd_functions.patch
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
BuildRequires: automake make
 | 
			
		||||
@ -138,7 +137,7 @@ if [ $1 -eq 0 ]; then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
%files -f nmap.lang
 | 
			
		||||
%license COPYING*
 | 
			
		||||
%license LICENSE
 | 
			
		||||
%doc docs/README
 | 
			
		||||
%doc docs/nmap.usage.txt
 | 
			
		||||
%{_bindir}/nmap
 | 
			
		||||
@ -148,7 +147,7 @@ fi
 | 
			
		||||
%{_datadir}/nmap
 | 
			
		||||
 | 
			
		||||
%files ncat 
 | 
			
		||||
%license COPYING
 | 
			
		||||
%license LICENSE
 | 
			
		||||
%doc ncat/docs/AUTHORS ncat/docs/README ncat/docs/THANKS ncat/docs/examples
 | 
			
		||||
%ghost %{_bindir}/nc
 | 
			
		||||
%{_bindir}/ncat
 | 
			
		||||
@ -156,6 +155,9 @@ fi
 | 
			
		||||
%{_mandir}/man1/ncat.1.gz
 | 
			
		||||
 | 
			
		||||
%changelog
 | 
			
		||||
* Thu Apr  8 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.91-1
 | 
			
		||||
- Bring 7.91 back
 | 
			
		||||
 | 
			
		||||
* Sun Mar 07 2021 Robert Scheck <robert@fedoraproject.org> - 3:7.80-11
 | 
			
		||||
- Manage nc symlink using alternatives (#1653119)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										95
									
								
								nmap_gpgkeys.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								nmap_gpgkeys.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,95 @@
 | 
			
		||||
GPG detached signatures and MD5/SHA-1 hashes for each Nmap release are
 | 
			
		||||
available from https://nmap.org/dist/sigs/?C=M;O=D .  The
 | 
			
		||||
releases are signed by the Nmap project GPG key (KeyId 6B9355D0).
 | 
			
		||||
Some messages to Nmap mailing lists may be signed by Nmap author and
 | 
			
		||||
maintainer Fyodor.  Fyodor's KeyID is 33599B5F.  Those two keys and
 | 
			
		||||
their fingerprints are reproduced below.  The latest version of this
 | 
			
		||||
file is always available at
 | 
			
		||||
https://nmap.org/data/nmap_gpgkeys.txt .
 | 
			
		||||
 | 
			
		||||
To verify a file with GPG, obtain and import the keys with a command
 | 
			
		||||
such as "gpg --import nmap_gpgkeys.txt" and then verify the obtained
 | 
			
		||||
files as shown in this example:
 | 
			
		||||
 | 
			
		||||
 > gpg --verify nmap-3.81.tar.bz2.gpg.txt nmap-3.81.tar.bz2
 | 
			
		||||
 gpg: Signature made Sat 23 Apr 2005 11:34:32 PM PDT using DSA key ID 6B9355D0
 | 
			
		||||
 gpg: Good signature from "Nmap Project Signing Key (http://www.insecure.org/)"
 | 
			
		||||
 | 
			
		||||
Here are the GPG keys for the Nmap Project and Fyodor:
 | 
			
		||||
 | 
			
		||||
pub   1024D/6B9355D0 2005-04-24
 | 
			
		||||
      Key fingerprint = 436D 66AB 9A79 8425 FDA0  E3F8 01AF 9F03 6B93 55D0
 | 
			
		||||
uid   Nmap Project Signing Key (http://www.insecure.org/)
 | 
			
		||||
sub   2048g/A50A6A94 2005-04-24
 | 
			
		||||
 | 
			
		||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
 | 
			
		||||
Version: GnuPG v1.4.1 (GNU/Linux)
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
=18Dk
 | 
			
		||||
-----END PGP PUBLIC KEY BLOCK-----
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
pub   1024D/33599B5F 2005-04-24
 | 
			
		||||
      Key fingerprint = BB61 D057 C0D7 DCEF E730  996C 1AF6 EC50 3359 9B5F
 | 
			
		||||
uid   Fyodor <fyodor@insecure.org>
 | 
			
		||||
sub   2048g/D3C2241C 2005-04-24
 | 
			
		||||
 | 
			
		||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
 | 
			
		||||
Version: GnuPG v1.4.1 (GNU/Linux)
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
NtNX5k7XyTWBQUdG
 | 
			
		||||
=cBzb
 | 
			
		||||
-----END PGP PUBLIC KEY BLOCK-----
 | 
			
		||||
							
								
								
									
										4
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								sources
									
									
									
									
									
								
							@ -1,3 +1 @@
 | 
			
		||||
SHA512 (nmap-7.80.tar.bz2.asc) = e55e371a0c7faa08535e8a3c182a3723b90d1beec0489e5aa432c604c0fbda5f3ff187e6a6bc7fbc56f4ae00bca2ca392d955f6578ebf7ffb75c8067b411ed02
 | 
			
		||||
SHA512 (nmap_gpgkeys.txt) = ab9dddbedb7c74697ae1ec68e456e3d607c057b4ca9a3bf0269a9fde0289e81031ec15718da2686aa7a68b5428e95042072c53f93925439ba6b60abf43e61317
 | 
			
		||||
SHA512 (nmap-7.80.tar.bz2) = d4384d3ebf4f3abf3588eed5433f733874ecdceb9342a718dc36db19634b0cc819d73399974eb0a9a9c9dd9e5c88473e07644ec91db28b0c072552b54430be6b
 | 
			
		||||
SHA512 (nmap-7.91.tar.bz2) = 9d59f031b5f748311e9f9a0b9d05ad4a7a70fc6ac17598d7c4c81a4825c95d53817d74435d839e67b9379a052f2d37889fd634f9c75301a851f465d60fb9974d
 | 
			
		||||
 | 
			
		||||
@ -1,4 +0,0 @@
 | 
			
		||||
USER=root
 | 
			
		||||
PROGRAM=/usr/bin/zenmap
 | 
			
		||||
SESSION=true
 | 
			
		||||
FALLBACK=true
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user