nmap updated to 6.45

This commit is contained in:
Michal Hlavinka 2014-04-14 16:12:56 +02:00
parent 7634e9c8f0
commit ff866f443f
5 changed files with 7 additions and 223 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@ nmap-5.21.tar.bz2
/nmap-6.25.tar.bz2
/nmap-6.25svn20130624.tar.bz2
/nmap-6.40.tar.bz2
/nmap-6.45.tar.bz2

View File

@ -1,202 +0,0 @@
diff -up nmap-6.40/nbase/nbase.h.fdsafe nmap-6.40/nbase/nbase.h
--- nmap-6.40/nbase/nbase.h.fdsafe 2013-07-29 00:08:48.000000000 +0200
+++ nmap-6.40/nbase/nbase.h 2014-04-09 17:30:19.579033118 +0200
@@ -369,37 +369,41 @@ extern "C" int vsnprintf (char *, size_t
#endif
-#ifdef WIN32
-#define CHECKED_FD_SET FD_SET
-#else
-#define CHECKED_FD_SET(fd, set) \
- do { \
- if ((fd) < FD_SETSIZE) { \
- FD_SET((fd), (set)); \
- } else { \
- fprintf(stderr, "%s:%ld: Attempt to FD_SET fd %d, which is not less than" \
- " FD_SETSIZE (%d). Try using a lower parallelism.", \
- __FILE__, (long int) __LINE__, (fd), FD_SETSIZE); \
- abort(); \
- } \
- } while (0)
+static inline int checked_fd_isset(int fd, const fd_set *fds) {
+#ifndef WIN32
+ if (fd >= FD_SETSIZE) {
+ fprintf(stderr, "Attempt to FD_ISSET fd %d, which is not less than "
+ "FD_SETSIZE (%d). Try using a lower parallelism.",
+ fd, FD_SETSIZE);
+ abort();
+ }
#endif
+ return FD_ISSET(fd, fds);
+}
-#ifdef WIN32
-#define CHECKED_FD_CLR FD_CLR
-#else
-#define CHECKED_FD_CLR(fd, set) \
- do { \
- if ((fd) < FD_SETSIZE) { \
- FD_CLR((fd), (set)); \
- } else { \
- fprintf(stderr, "%s:%ld: Attempt to FD_CLR fd %d, which is not less than" \
- " FD_SETSIZE (%d). Try using a lower parallelism.", \
- __FILE__, (long int) __LINE__, (fd), FD_SETSIZE); \
- abort(); \
- } \
- } while (0)
+static inline void checked_fd_clr(int fd, fd_set *fds) {
+#ifndef WIN32
+ if (fd >= FD_SETSIZE) {
+ fprintf(stderr, "Attempt to FD_CLR fd %d, which is not less than "
+ "FD_SETSIZE (%d). Try using a lower parallelism.",
+ fd, FD_SETSIZE);
+ abort();
+ }
#endif
+ FD_CLR(fd, fds);
+}
+
+static inline void checked_fd_set(int fd, fd_set *fds) {
+#ifndef WIN32
+ if (fd >= FD_SETSIZE) {
+ fprintf(stderr, "Attempt to FD_SET fd %d, which is not less than "
+ "FD_SETSIZE (%d). Try using a lower parallelism.",
+ fd, FD_SETSIZE);
+ abort();
+ }
+#endif
+ FD_SET(fd, fds);
+}
#ifdef __cplusplus
diff -up nmap-6.40/nsock/src/engine_select.c.fdsafe nmap-6.40/nsock/src/engine_select.c
--- nmap-6.40/nsock/src/engine_select.c.fdsafe 2013-07-29 00:08:48.000000000 +0200
+++ nmap-6.40/nsock/src/engine_select.c 2014-04-09 17:30:19.579033118 +0200
@@ -174,18 +174,18 @@ int select_iod_unregister(mspool *nsp, m
if (iod->pcap) {
int sd = ((mspcap *)iod->pcap)->pcap_desc;
if (sd >= 0) {
- CHECKED_FD_CLR(sd, &sinfo->fds_master_r);
- CHECKED_FD_CLR(sd, &sinfo->fds_results_r);
+ checked_fd_clr(sd, &sinfo->fds_master_r);
+ checked_fd_clr(sd, &sinfo->fds_results_r);
}
} else
#endif
{
- CHECKED_FD_CLR(iod->sd, &sinfo->fds_master_r);
- CHECKED_FD_CLR(iod->sd, &sinfo->fds_master_w);
- CHECKED_FD_CLR(iod->sd, &sinfo->fds_master_x);
- CHECKED_FD_CLR(iod->sd, &sinfo->fds_results_r);
- CHECKED_FD_CLR(iod->sd, &sinfo->fds_results_w);
- CHECKED_FD_CLR(iod->sd, &sinfo->fds_results_x);
+ checked_fd_clr(iod->sd, &sinfo->fds_master_r);
+ checked_fd_clr(iod->sd, &sinfo->fds_master_w);
+ checked_fd_clr(iod->sd, &sinfo->fds_master_x);
+ checked_fd_clr(iod->sd, &sinfo->fds_results_r);
+ checked_fd_clr(iod->sd, &sinfo->fds_results_w);
+ checked_fd_clr(iod->sd, &sinfo->fds_results_x);
}
if (sinfo->max_sd == iod->sd)
@@ -209,23 +209,23 @@ int select_iod_modify(mspool *nsp, msiod
/* -- set events -- */
if (ev_set & EV_READ)
- CHECKED_FD_SET(sd, &sinfo->fds_master_r);
+ checked_fd_set(sd, &sinfo->fds_master_r);
if (ev_set & EV_WRITE)
- CHECKED_FD_SET(sd, &sinfo->fds_master_w);
+ checked_fd_set(sd, &sinfo->fds_master_w);
if (ev_set & EV_EXCEPT)
- CHECKED_FD_SET(sd, &sinfo->fds_master_x);
+ checked_fd_set(sd, &sinfo->fds_master_x);
/* -- clear events -- */
if (ev_clr & EV_READ)
- CHECKED_FD_CLR(sd, &sinfo->fds_master_r);
+ checked_fd_clr(sd, &sinfo->fds_master_r);
if (ev_clr & EV_WRITE)
- CHECKED_FD_CLR(sd, &sinfo->fds_master_w);
+ checked_fd_clr(sd, &sinfo->fds_master_w);
if (ev_clr & EV_EXCEPT)
- CHECKED_FD_CLR(sd, &sinfo->fds_master_x);
+ checked_fd_clr(sd, &sinfo->fds_master_x);
/* -- update max_sd -- */
@@ -335,7 +335,7 @@ static inline int get_evmask(const mspoo
#if HAVE_PCAP
#ifndef PCAP_CAN_DO_SELECT
if (nsi->pcap) {
- /* Always assume readable for a non-blocking read. We can't check FD_ISSET
+ /* Always assume readable for a non-blocking read. We can't check checked_fd_isset
because we don't have a pcap_desc. */
evmask |= EV_READ;
return evmask;
@@ -352,11 +352,11 @@ static inline int get_evmask(const mspoo
assert(sd >= 0);
- if (FD_ISSET(sd, &sinfo->fds_results_r))
+ if (checked_fd_isset(sd, &sinfo->fds_results_r))
evmask |= EV_READ;
- if (FD_ISSET(sd, &sinfo->fds_results_w))
+ if (checked_fd_isset(sd, &sinfo->fds_results_w))
evmask |= EV_WRITE;
- if (FD_ISSET(sd, &sinfo->fds_results_x))
+ if (checked_fd_isset(sd, &sinfo->fds_results_x))
evmask |= EV_EXCEPT;
return evmask;
diff -up nmap-6.40/scan_engine.cc.fdsafe nmap-6.40/scan_engine.cc
--- nmap-6.40/scan_engine.cc.fdsafe 2013-07-29 00:08:48.000000000 +0200
+++ nmap-6.40/scan_engine.cc 2014-04-09 17:30:19.580033127 +0200
@@ -1006,10 +1006,10 @@ ConnectScanInfo::~ConnectScanInfo() {}
watch an SD that was already being watched. */
bool ConnectScanInfo::watchSD(int sd) {
assert(sd >= 0);
- if (!FD_ISSET(sd, &fds_read)) {
- CHECKED_FD_SET(sd, &fds_read);
- CHECKED_FD_SET(sd, &fds_write);
- CHECKED_FD_SET(sd, &fds_except);
+ if (!checked_fd_isset(sd, &fds_read)) {
+ checked_fd_set(sd, &fds_read);
+ checked_fd_set(sd, &fds_write);
+ checked_fd_set(sd, &fds_except);
numSDs++;
if (sd > maxValidSD)
maxValidSD = sd;
@@ -1024,10 +1024,10 @@ bool ConnectScanInfo::watchSD(int sd) {
there in the first place. */
bool ConnectScanInfo::clearSD(int sd) {
assert(sd >= 0);
- if (FD_ISSET(sd, &fds_read)) {
- CHECKED_FD_CLR(sd, &fds_read);
- CHECKED_FD_CLR(sd, &fds_write);
- CHECKED_FD_CLR(sd, &fds_except);
+ if (checked_fd_isset(sd, &fds_read)) {
+ checked_fd_clr(sd, &fds_read);
+ checked_fd_clr(sd, &fds_write);
+ checked_fd_clr(sd, &fds_except);
assert(numSDs > 0);
numSDs--;
if (sd == maxValidSD)
@@ -4096,8 +4096,9 @@ static bool do_one_select_round(UltraSca
assert(probe->type == UltraProbe::UP_CONNECT);
sd = probe->CP()->sd;
/* Let see if anything has happened! */
- if (sd >= 0 && (FD_ISSET(sd, &fds_rtmp) || FD_ISSET(sd, &fds_wtmp) ||
- FD_ISSET(sd, &fds_xtmp))) {
+ if (sd >= 0 && (checked_fd_isset(sd, &fds_rtmp) ||
+ checked_fd_isset(sd, &fds_wtmp) ||
+ checked_fd_isset(sd, &fds_xtmp))) {
numGoodSD++;
newportstate = PORT_UNKNOWN;
if (getsockopt(sd, SOL_SOCKET, SO_ERROR, (char *) &optval,

View File

@ -5,9 +5,9 @@
Summary: Network exploration tool and security scanner
Name: nmap
Epoch: 2
Version: 6.40
Version: 6.45
#global prerelease TEST5
Release: 6%{?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
@ -24,16 +24,12 @@ Patch1: nmap-4.03-mktemp.patch
#don't suggest to scan microsoft
Patch2: nmap-4.52-noms.patch
# rhbz#637403, workaround for rhbz#621887=gnome#623965
Patch4: zenmap-621887-workaround.patch
# upstream provided patch for rhbz#845005, not yet in upstream repository
Patch5: ncat_reg_stdin.diff
Patch6: nmap-6.25-displayerror.patch
#rhbz#994376
Patch7: nmap-6.40-logdebug.patch
Patch8: nmap-6.40-fdsafe.patch
URL: http://nmap.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -84,11 +80,9 @@ uses.
%setup -q -n %{name}-%{version}%{?prerelease}
%patch1 -p1 -b .mktemp
%patch2 -p1 -b .noms
%patch4 -p1 -b .bz637403
%patch5 -p1 -b .ncat_reg_stdin
%patch6 -p1 -b .displayerror
%patch7 -p1 -b .logdebug
%patch8 -p1 -b .fdsafe
# for aarch64 support, not needed with autotools 2.69+
for f in acinclude.m4 configure.ac nping/configure.ac
@ -222,6 +216,9 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/xnmap.1.gz
%changelog
* Mon Apr 14 2014 Michal Hlavinka <mhlavink@redhat.com> - 2:6.45-1
- nmap updated to 6.45
* Wed Apr 09 2014 Michal Hlavinka <mhlavink@redhat.com> - 2:6.40-6
- fix unexpected crash when too much paralelism is used (#1057912)

View File

@ -1 +1 @@
c0e2f3370e1fb97fb53185b15aa22aff nmap-6.40.tar.bz2
e8c337456a692bada3ee53e7f5b87bac nmap-6.45.tar.bz2

View File

@ -1,12 +0,0 @@
diff -up nmap-5.50/zenmap/zenmapGUI/App.py.bz637403 nmap-5.50/zenmap/zenmapGUI/App.py
--- nmap-5.50/zenmap/zenmapGUI/App.py.bz637403 2011-01-21 01:04:51.000000000 +0100
+++ nmap-5.50/zenmap/zenmapGUI/App.py 2011-02-07 13:01:36.275314680 +0100
@@ -179,7 +179,7 @@ def install_excepthook():
# produces a warning, but the lack of a display eventually causes a
# segmentation fault. See http://live.gnome.org/PyGTK/WhatsNew210.
import warnings
- warnings.filterwarnings("error", module = "gtk")
+ warnings.filterwarnings("error", module = "gtk", append=True)
import gtk
warnings.resetwarnings()