Just run "sh checklibs.sh". Currently checks liblua, libpcre, libpcap,
and prints the latest version of liblinear (no version info is in the
copy we have). Requires perl, curl, and a C compiler (cc).
Classes that inherit __hash__ and comparison functions like __eq__ (e.g.
from object) but only override one of them will break under Python 3.
This is because a class shouldn't use one criterion for equality and a
different one for hashing. Explicitly discarding the inherited __hash__
method disables this warning and makes the class unhashable (not a
problem in this case).
d33tah noticed that the # in "Fingerprint OpenBSD 5.0 GENERIC#43 i386"
was being interpreted as a comment, resulting in matches for "OpenBSD
5.0 GENERIC". Looking at this, it appears that no other OS fingerprints
put the build number in the Fingerprint line, and this fingerprint
closely matches another OpenBSD 5.0 fingerprint. Changed to drop
everything after GENERIC.
CPPFLAGS is for the C Pre-Processor, and should be used for -I flags. In
a couple cases (nping, nmap) this was resulting in duplicate -Ilibpcap
arguments.
IP ID is an unsigned value. Explicit wrapping checks were needed to
support using a signed int, and a few users were reporting compile
errors because of a large constant:
http://seclists.org/nmap-dev/2013/q4/247
Although $((arithmetic expansion)) is POSIX-specified, some systems have
non-POSIX System V shell, which can't handle it. This patch replaces
$((something)) with $(expr something) to fix compatibility. This
actually slows things down considerably, since a subshell must be
launched for each increment operation, but the tests aren't that
critical. Bug report: http://seclists.org/nmap-dev/2013/q4/198
An off-by-one error meant that we tried 65 at a time. The number 64 came
up in a discussion of limitations of running against IIS.
http://seclists.org/nmap-dev/2012/q3/167
Using offsetof instead of actually dereferencing a 0 pointer is still
standards compliant (works under gcc -ansi, clang -ansi), and is more in
line with how Linux kernel defines this macro (kernel.h). Can't exactly
lift the kernel implementation because it uses gnu-extension typeof.
Not really a necessary change, but it was causing clang's address
sanitizer to complain.
see http://seclists.org/nmap-dev/2013/q4/168
Move some includes out of nmap.h: nmap.h gets included lots of places,
and unconditionally included math.h, ctype.h, errno.h, stdio.h,
sys/stat.h, fcntl.h, sys/types.h, and stdarg.h. This commit moves those
includes into the .cc files where they are necessary and out of nmap.h
Remove redundant include global_structures.h, included from nmap.h
Removed redundant code included from nmap.h
Removing #include nbase.h when nmap.h is included (redundant)
Remove duplicate #include lines
Add ifndef guards to a few .h files