Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 677701d3ef |
@ -1 +0,0 @@
|
||||
1
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,3 +1 @@
|
||||
SOURCES/nmap-7.70.tar.bz2
|
||||
/nmap-7.70.tar.bz2
|
||||
/nmap-7.92.tar.bz2
|
||||
nmap-7.92.tar.bz2
|
||||
|
||||
25
gating.yaml
25
gating.yaml
@ -1,25 +0,0 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_testing
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional}
|
||||
|
||||
#Rawhide
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_stable
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional}
|
||||
|
||||
#gating rhel
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-*
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-public.functional}
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional}
|
||||
@ -1,17 +0,0 @@
|
||||
diff -up nmap-6.25/zenmap/zenmapGUI/App.py.displayerror nmap-6.25/zenmap/zenmapGUI/App.py
|
||||
--- nmap-6.25/zenmap/zenmapGUI/App.py.displayerror 2013-05-23 15:11:46.595569883 +0200
|
||||
+++ nmap-6.25/zenmap/zenmapGUI/App.py 2013-05-23 15:12:44.786049525 +0200
|
||||
@@ -116,7 +116,12 @@ except Exception:
|
||||
# startup scripts, and for some reason the first connection (the one that
|
||||
# caused the launch) is rejected. But somehow subsequent connections work
|
||||
# fine! So if the import fails, try one more time.
|
||||
- import gtk
|
||||
+ try:
|
||||
+ import gtk
|
||||
+ except Exception, e:
|
||||
+ print >> sys.stderr, 'Error:', str(e)
|
||||
+ sys.exit(1)
|
||||
+
|
||||
warnings.resetwarnings()
|
||||
|
||||
from zenmapGUI.higwidgets.higdialogs import HIGAlertDialog
|
||||
6
nmap-7.92.tar.bz2.asc
Normal file
6
nmap-7.92.tar.bz2.asc
Normal file
@ -0,0 +1,6 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iF0EABECAB0WIQRDbWarmnmEJf2g4/gBr58Da5NV0AUCYQ8ebgAKCRABr58Da5NV
|
||||
0CueAJ4qDsTIi6sJ521jJutUvrAsqoaSaACfX8sECeGHSnV3VPsTzvj7QxoqiAA=
|
||||
=TLt7
|
||||
-----END PGP SIGNATURE-----
|
||||
40
nmap-ems-ssl-enum-ciphers.patch
Normal file
40
nmap-ems-ssl-enum-ciphers.patch
Normal file
@ -0,0 +1,40 @@
|
||||
commit fc5fc2a26877e241bf9f175832cc89f5ec1e6925
|
||||
Author: Clemens Lang <cllang@redhat.com>
|
||||
Date: Mon Oct 16 13:44:40 2023 +0200
|
||||
|
||||
Support EMS in ssl-enum-ciphers
|
||||
|
||||
The FIPS 140-3 Implementation Guidelines in section D.Q require
|
||||
FIPS-certified cryptographic modules to use the RFC 7627 Extended Master
|
||||
Secret for modules submitted after May 16th, 2023:
|
||||
|
||||
> [a] new validation, […] submitted more than one year after [May 2022]
|
||||
> shall use the extended master secret in the TLS 1.2 KDF.
|
||||
|
||||
ssl-enum-ciphers was not sending this extension, causing some servers to
|
||||
abort the handshake. This lead to no support for TLS 1.2 being reported,
|
||||
even though support was available with the extended master secret. Add
|
||||
the EMS extension to the set of base extensions that are always sent to
|
||||
avoid this situation.
|
||||
|
||||
Servers that do not support EMS should just ignore this extension
|
||||
silently.
|
||||
|
||||
Signed-off-by: Clemens Lang <cllang@redhat.com>
|
||||
|
||||
diff --git a/scripts/ssl-enum-ciphers.nse b/scripts/ssl-enum-ciphers.nse
|
||||
index 881b6bdcb..bd441120c 100644
|
||||
--- a/scripts/ssl-enum-ciphers.nse
|
||||
+++ b/scripts/ssl-enum-ciphers.nse
|
||||
@@ -528,6 +528,11 @@ local function base_extensions(host)
|
||||
["ec_point_formats"] = tls.EXTENSION_HELPERS["ec_point_formats"]({"uncompressed"}),
|
||||
-- Enable SNI if a server name is available
|
||||
["server_name"] = tlsname and tls.EXTENSION_HELPERS["server_name"](tlsname),
|
||||
+ -- Enable the Extended Master Secret extension, since FIPS 140-3 IG section
|
||||
+ -- D.Q now requires it for servers in FIPS mode and some vendors may reject
|
||||
+ -- handshakes without it. Not sending the extension would show those
|
||||
+ -- servers as not supporting TLS 1.2 at all.
|
||||
+ ["extended_master_secret"] = "",
|
||||
}
|
||||
end
|
||||
|
||||
659
nmap-pcre2.patch
Normal file
659
nmap-pcre2.patch
Normal file
@ -0,0 +1,659 @@
|
||||
From 828ab48764b82d0226e860c73c5dac5b11f77385 Mon Sep 17 00:00:00 2001
|
||||
From: dmiller <dmiller@e0a8ed71-7df4-0310-8962-fdc924857419>
|
||||
Date: Sat, 24 Jun 2023 01:53:07 +0000
|
||||
Subject: [PATCH] Upgrade libpcre to PCRE2 10.42. Windows/macOS builds not
|
||||
completed.
|
||||
|
||||
---
|
||||
Backported to 7.93, excluded changes to unused bundled libpcre
|
||||
|
||||
checklibs.sh | 10 +-
|
||||
configure | 106 +++++++++-------------------
|
||||
configure.ac | 23 +++---
|
||||
nmap.cc | 6 +
|
||||
nmap_config.h.in | 2
|
||||
nping/nping_config.h.in | 2
|
||||
service_scan.cc | 180 +++++++++++++++++++++++++-----------------------
|
||||
service_scan.h | 33 +++-----
|
||||
8 files changed, 168 insertions(+), 194 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 075df5cf5d..10a6034286 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -514,7 +514,7 @@ LIBPCREDIR=libpcre
|
||||
|
||||
# First we test whether they specified libpcre explicitly
|
||||
AC_ARG_WITH(libpcre,
|
||||
-AC_HELP_STRING([--with-libpcre=DIR], [Use an existing (compiled) pcre lib from DIR/include and DIR/lib.])
|
||||
+AC_HELP_STRING([--with-libpcre=DIR], [Use an existing (compiled) pcre2 lib from DIR/include and DIR/lib.])
|
||||
AC_HELP_STRING([--with-libpcre=included], [Always use the version included with Nmap]),
|
||||
[ case "$with_libpcre" in
|
||||
yes)
|
||||
@@ -532,27 +532,28 @@ AC_HELP_STRING([--with-libpcre=included], [Always use the version included with
|
||||
|
||||
# If they didn't specify it, we try to find it
|
||||
if test $have_pcre != yes -a $requested_included_pcre != yes ; then
|
||||
- AC_CHECK_HEADER(pcre.h,
|
||||
- AC_CHECK_LIB(pcre, pcre_version, [have_pcre=yes ]),
|
||||
- [AC_CHECK_HEADER(pcre/pcre.h,
|
||||
- [AC_CHECK_LIB(pcre, pcre_version, [have_pcre=yes])]
|
||||
- )]
|
||||
+ AC_CHECK_HEADER(pcre2.h,
|
||||
+ AC_CHECK_LIB(pcre2-8, pcre2_compile_8, [have_pcre=yes ]),
|
||||
+ [],
|
||||
+ [
|
||||
+#define PCRE2_CODE_UNIT_WIDTH 8
|
||||
+ ]
|
||||
)
|
||||
fi
|
||||
|
||||
# If we still don't have it, we use our own
|
||||
if test $have_pcre != yes ; then
|
||||
AC_CONFIG_SUBDIRS( libpcre )
|
||||
- CPPFLAGS="-I\$(top_srcdir)/$LIBPCREDIR $CPPFLAGS"
|
||||
- LIBPCRE_LIBS="$LIBPCREDIR/libpcre.a"
|
||||
+ CPPFLAGS="-I\$(top_srcdir)/$LIBPCREDIR/src $CPPFLAGS"
|
||||
+ LIBPCRE_LIBS="$LIBPCREDIR/.libs/libpcre2-8.a"
|
||||
PCRE_BUILD="build-pcre"
|
||||
PCRE_CLEAN="clean-pcre"
|
||||
PCRE_DIST_CLEAN="distclean-pcre"
|
||||
- AC_DEFINE(PCRE_INCLUDED, 1, [Using included libpcre])
|
||||
+ AC_DEFINE(PCRE_INCLUDED, 1, [Using included libpcre2])
|
||||
else
|
||||
# We only need to check for and use this if we are NOT using included pcre
|
||||
- AC_CHECK_HEADERS(pcre/pcre.h)
|
||||
- LIBPCRE_LIBS="-lpcre"
|
||||
+ AC_CHECK_HEADERS(pcre2.h)
|
||||
+ LIBPCRE_LIBS="-lpcre2-8"
|
||||
PCRE_BUILD=""
|
||||
PCRE_CLEAN=""
|
||||
PCRE_DIST_CLEAN=""
|
||||
diff --git a/nmap.cc b/nmap.cc
|
||||
index d38821ad81..630d43bd70 100644
|
||||
--- a/nmap.cc
|
||||
+++ b/nmap.cc
|
||||
@@ -2786,10 +2786,12 @@ static void display_nmap_version() {
|
||||
without.push_back("libz");
|
||||
#endif
|
||||
|
||||
+ char pcre2_version[255];
|
||||
+ pcre2_config(PCRE2_CONFIG_VERSION, pcre2_version);
|
||||
#ifdef PCRE_INCLUDED
|
||||
- with.push_back(std::string("nmap-libpcre-") + get_word_or_quote(pcre_version(), 0));
|
||||
+ with.push_back(std::string("nmap-libpcre2-") + get_word_or_quote(pcre2_version, 0));
|
||||
#else
|
||||
- with.push_back(std::string("libpcre-") + get_word_or_quote(pcre_version(), 0));
|
||||
+ with.push_back(std::string("libpcre2-") + get_word_or_quote(pcre2_version, 0));
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
diff --git a/nmap_config.h.in b/nmap_config.h.in
|
||||
index 79ec4e7620..5f6f32583b 100644
|
||||
--- a/nmap_config.h.in
|
||||
+++ b/nmap_config.h.in
|
||||
@@ -105,8 +105,6 @@
|
||||
|
||||
#undef HAVE_TERMIOS_H
|
||||
|
||||
-#undef HAVE_PCRE_PCRE_H
|
||||
-
|
||||
#undef BSD_NETWORKING
|
||||
|
||||
#undef IN_ADDR_DEEPSTRUCT
|
||||
diff --git a/nping/nping_config.h.in b/nping/nping_config.h.in
|
||||
index 98638cb410..9b6f97134d 100644
|
||||
--- a/nping/nping_config.h.in
|
||||
+++ b/nping/nping_config.h.in
|
||||
@@ -103,8 +103,6 @@
|
||||
|
||||
#undef HAVE_TERMIOS_H
|
||||
|
||||
-#undef HAVE_PCRE_PCRE_H
|
||||
-
|
||||
#undef BSD_NETWORKING
|
||||
|
||||
#undef IN_ADDR_DEEPSTRUCT
|
||||
diff --git a/service_scan.cc b/service_scan.cc
|
||||
index f7de2ea8ce..7d99e5fbe4 100644
|
||||
--- a/service_scan.cc
|
||||
+++ b/service_scan.cc
|
||||
@@ -247,7 +247,7 @@ ServiceProbeMatch::ServiceProbeMatch() {
|
||||
product_template = version_template = info_template = NULL;
|
||||
hostname_template = ostype_template = devicetype_template = NULL;
|
||||
regex_compiled = NULL;
|
||||
- regex_extra = NULL;
|
||||
+ match_data = NULL;
|
||||
isInitialized = false;
|
||||
matchops_ignorecase = false;
|
||||
matchops_dotall = false;
|
||||
@@ -268,8 +268,21 @@ ServiceProbeMatch::~ServiceProbeMatch() {
|
||||
for (it = cpe_templates.begin(); it != cpe_templates.end(); it++)
|
||||
free(*it);
|
||||
matchstrlen = 0;
|
||||
- if (regex_compiled) pcre_free(regex_compiled);
|
||||
- if (regex_extra) pcre_free(regex_extra);
|
||||
+ if (regex_compiled)
|
||||
+ {
|
||||
+ pcre2_code_free(regex_compiled);
|
||||
+ regex_compiled=NULL;
|
||||
+ }
|
||||
+ if (match_data)
|
||||
+ {
|
||||
+ pcre2_match_data_free(match_data);
|
||||
+ match_data=NULL;
|
||||
+ }
|
||||
+ if (match_context)
|
||||
+ {
|
||||
+ pcre2_match_context_free(match_context);
|
||||
+ match_context=NULL;
|
||||
+ }
|
||||
isInitialized = false;
|
||||
matchops_anchor = -1;
|
||||
}
|
||||
@@ -347,9 +360,9 @@ void ServiceProbeMatch::InitMatch(const char *matchtext, int lineno) {
|
||||
void ServiceProbeMatch::InitMatch(const char *matchtext, int lineno) {
|
||||
const char *p;
|
||||
char *modestr, *tmptemplate, *flags;
|
||||
- int pcre_compile_ops = 0;
|
||||
- const char *pcre_errptr = NULL;
|
||||
- int pcre_erroffset = 0;
|
||||
+ int pcre2_compile_ops = 0;
|
||||
+ int pcre2_errcode;
|
||||
+ PCRE2_SIZE pcre2_erroffset;
|
||||
char **curr_tmp = NULL;
|
||||
|
||||
if (isInitialized) fatal("Sorry ... %s does not yet support reinitializion", __func__);
|
||||
@@ -405,38 +418,40 @@ void ServiceProbeMatch::InitMatch(const char *matchtext, int lineno) {
|
||||
|
||||
// Next we compile and study the regular expression to match
|
||||
if (matchops_ignorecase)
|
||||
- pcre_compile_ops |= PCRE_CASELESS;
|
||||
+ pcre2_compile_ops |= PCRE2_CASELESS;
|
||||
|
||||
if (matchops_dotall)
|
||||
- pcre_compile_ops |= PCRE_DOTALL;
|
||||
+ pcre2_compile_ops |= PCRE2_DOTALL;
|
||||
|
||||
- regex_compiled = pcre_compile(matchstr, pcre_compile_ops, &pcre_errptr,
|
||||
- &pcre_erroffset, NULL);
|
||||
+ regex_compiled = pcre2_compile((PCRE2_SPTR)matchstr,PCRE2_ZERO_TERMINATED, pcre2_compile_ops, &pcre2_errcode,
|
||||
+ &pcre2_erroffset, NULL);
|
||||
|
||||
if (regex_compiled == NULL)
|
||||
- fatal("%s: illegal regexp on line %d of nmap-service-probes (at regexp offset %d): %s\n", __func__, lineno, pcre_erroffset, pcre_errptr);
|
||||
+ fatal("%s: illegal regexp on line %d of nmap-service-probes (at regexp offset %ld): %d\n", __func__, lineno, pcre2_erroffset, pcre2_errcode);
|
||||
|
||||
- // Now study the regexp for greater efficiency
|
||||
- regex_extra = pcre_study(regex_compiled, 0
|
||||
-#ifdef PCRE_STUDY_EXTRA_NEEDED
|
||||
- | PCRE_STUDY_EXTRA_NEEDED
|
||||
-#endif
|
||||
- , &pcre_errptr);
|
||||
- if (pcre_errptr != NULL)
|
||||
- fatal("%s: failed to pcre_study regexp on line %d of nmap-service-probes: %s\n", __func__, lineno, pcre_errptr);
|
||||
+ // creates a new match data block for holding the result of a match
|
||||
+ match_data = pcre2_match_data_create_from_pattern(
|
||||
+ regex_compiled,NULL
|
||||
+ );
|
||||
|
||||
- if (!regex_extra) {
|
||||
- regex_extra = (pcre_extra *) pcre_malloc(sizeof(pcre_extra));
|
||||
- memset(regex_extra, 0, sizeof(pcre_extra));
|
||||
+ if (!match_data) {
|
||||
+ fatal("%s: failed to allocate match_data\n", __func__);
|
||||
}
|
||||
|
||||
+ match_context = pcre2_match_context_create(NULL);
|
||||
+
|
||||
+ if (!match_context) {
|
||||
+ fatal("%s: failed to allocate match_context\n", __func__);
|
||||
+ }
|
||||
// Set some limits to avoid evil match cases.
|
||||
// These are flexible; if they cause problems, increase them.
|
||||
-#ifdef PCRE_ERROR_MATCHLIMIT
|
||||
- regex_extra->match_limit = 100000; // 100K
|
||||
-#endif
|
||||
-#ifdef PCRE_ERROR_RECURSIONLIMIT
|
||||
- regex_extra->match_limit_recursion = 10000; // 10K
|
||||
+ pcre2_set_match_limit(match_context, 100000);
|
||||
+#ifdef pcre2_set_depth_limit
|
||||
+ // Changed name in PCRE2 10.30. PCRE2 uses macro definitions for function
|
||||
+ // names, so we don't have to add this to configure.ac.
|
||||
+ pcre2_set_depth_limit(match_context, 10000);
|
||||
+#else
|
||||
+ pcre2_set_recursion_limit(match_context, 10000);
|
||||
#endif
|
||||
|
||||
free(modestr);
|
||||
@@ -502,36 +517,31 @@ const struct MatchDetails *ServiceProbeMatch::testMatch(const u8 *buf, int bufle
|
||||
static char devicetype[32];
|
||||
static char cpe_a[80], cpe_h[80], cpe_o[80];
|
||||
char *bufc = (char *) buf;
|
||||
- int ovector[150]; // allows 50 substring matches (including the overall match)
|
||||
assert(isInitialized);
|
||||
|
||||
assert (matchtype == SERVICEMATCH_REGEX);
|
||||
|
||||
// Clear out the output struct
|
||||
memset(&MD_return, 0, sizeof(MD_return));
|
||||
MD_return.isSoft = isSoft;
|
||||
|
||||
- rc = pcre_exec(regex_compiled, regex_extra, bufc, buflen, 0, 0, ovector, sizeof(ovector) / sizeof(*ovector));
|
||||
+ rc = pcre2_match(regex_compiled, (PCRE2_SPTR8)bufc, buflen, 0, 0, match_data, match_context);
|
||||
if (rc < 0) {
|
||||
-#ifdef PCRE_ERROR_MATCHLIMIT // earlier PCRE versions lack this
|
||||
- if (rc == PCRE_ERROR_MATCHLIMIT) {
|
||||
+ if (rc == PCRE2_ERROR_MATCHLIMIT) {
|
||||
if (o.debugging || o.verbose > 1)
|
||||
error("Warning: Hit PCRE_ERROR_MATCHLIMIT when probing for service %s with the regex '%s'", servicename, matchstr);
|
||||
} else
|
||||
-#endif // PCRE_ERROR_MATCHLIMIT
|
||||
-#ifdef PCRE_ERROR_RECURSIONLIMIT
|
||||
- if (rc == PCRE_ERROR_RECURSIONLIMIT) {
|
||||
+ if (rc == PCRE2_ERROR_RECURSIONLIMIT) {
|
||||
if (o.debugging || o.verbose > 1)
|
||||
error("Warning: Hit PCRE_ERROR_RECURSIONLIMIT when probing for service %s with the regex '%s'", servicename, matchstr);
|
||||
} else
|
||||
-#endif // PCRE_ERROR_RECURSIONLIMIT
|
||||
- if (rc != PCRE_ERROR_NOMATCH) {
|
||||
+ if (rc != PCRE2_ERROR_NOMATCH) {
|
||||
fatal("Unexpected PCRE error (%d) when probing for service %s with the regex '%s'", rc, servicename, matchstr);
|
||||
}
|
||||
} else {
|
||||
// Yeah! Match apparently succeeded.
|
||||
// Now lets get the version number if available
|
||||
- getVersionStr(buf, buflen, ovector, rc, product, sizeof(product), version, sizeof(version), info, sizeof(info),
|
||||
+ getVersionStr(buf, buflen, product, sizeof(product), version, sizeof(version), info, sizeof(info),
|
||||
hostname, sizeof(hostname), ostype, sizeof(ostype), devicetype, sizeof(devicetype),
|
||||
cpe_a, sizeof(cpe_a), cpe_h, sizeof(cpe_h), cpe_o, sizeof(cpe_o));
|
||||
if (*product) MD_return.product = product;
|
||||
@@ -680,18 +690,17 @@ static char *transform_cpe(const char *s) {
|
||||
// This function does the substitution of a placeholder like $2 or $P(4). It
|
||||
// returns a newly allocated string, or NULL if it fails. tmplvar is a template
|
||||
// variable, such as "$P(2)". We set *tmplvarend to the character after the
|
||||
-// variable. subject, subjectlen, ovector, and nummatches mean the same as in
|
||||
+// variable. subject, subjectlen, and match_data mean the same as in
|
||||
// dotmplsubst().
|
||||
static char *substvar(char *tmplvar, char **tmplvarend,
|
||||
- const u8 *subject, int subjectlen, int *ovector,
|
||||
- int nummatches) {
|
||||
+ const u8 *subject, size_t subjectlen, pcre2_match_data *match_data
|
||||
+ ) {
|
||||
char substcommand[16];
|
||||
char *p = NULL;
|
||||
char *p_end;
|
||||
- int subnum = 0;
|
||||
- int offstart, offend;
|
||||
+ u8 subnum = 0;
|
||||
+ PCRE2_SIZE offstart, offend;
|
||||
int rc;
|
||||
- int i;
|
||||
struct substargs command_args;
|
||||
char *result;
|
||||
size_t n, len;
|
||||
@@ -723,6 +732,8 @@ static char *substvar(char *tmplvar, char **tmplvarend,
|
||||
}
|
||||
|
||||
if (tmplvarend) *tmplvarend = tmplvar;
|
||||
+ u32 nummatches = pcre2_get_ovector_count(match_data);
|
||||
+ PCRE2_SIZE *ovector = pcre2_get_ovector_pointer(match_data);
|
||||
|
||||
strbuf_init(&result, &n, &len);
|
||||
if (!*substcommand) {
|
||||
@@ -730,9 +741,10 @@ static char *substvar(char *tmplvar, char **tmplvarend,
|
||||
if (subnum > 9 || subnum <= 0) return NULL;
|
||||
if (subnum >= nummatches) return NULL;
|
||||
offstart = ovector[subnum * 2];
|
||||
+ if (offstart == PCRE2_UNSET) return NULL;
|
||||
offend = ovector[subnum * 2 + 1];
|
||||
- assert(offstart >= 0 && offstart <= subjectlen);
|
||||
- assert(offend >= 0 && offend <= subjectlen);
|
||||
+ assert(offstart <= subjectlen);
|
||||
+ assert(offend != PCRE2_UNSET && offend <= subjectlen);
|
||||
// A plain-jane copy
|
||||
strbuf_append(&result, &n, &len, (const char *) subject + offstart, offend - offstart);
|
||||
} else if (strcmp(substcommand, "P") == 0) {
|
||||
@@ -744,13 +756,14 @@ static char *substvar(char *tmplvar, char **tmplvarend,
|
||||
if (subnum > 9 || subnum <= 0) return NULL;
|
||||
if (subnum >= nummatches) return NULL;
|
||||
offstart = ovector[subnum * 2];
|
||||
+ if (offstart == PCRE2_UNSET) return NULL;
|
||||
offend = ovector[subnum * 2 + 1];
|
||||
- assert(offstart >= 0 && offstart <= subjectlen);
|
||||
- assert(offend >= 0 && offend <= subjectlen);
|
||||
+ assert(offstart <= subjectlen);
|
||||
+ assert(offend != PCRE2_UNSET && offend <= subjectlen);
|
||||
// This filter only includes printable characters. It is particularly
|
||||
// useful for collapsing unicode text that looks like
|
||||
// "W\0O\0R\0K\0G\0R\0O\0U\0P\0"
|
||||
- for(i=offstart; i < offend; i++) {
|
||||
+ for(PCRE2_SIZE i=offstart; i < offend; i++) {
|
||||
if (isprint((int) subject[i]))
|
||||
strbuf_append(&result, &n, &len, (const char *) subject + i, 1);
|
||||
}
|
||||
@@ -767,14 +780,15 @@ static char *substvar(char *tmplvar, char **tmplvarend,
|
||||
if (subnum > 9 || subnum <= 0) return NULL;
|
||||
if (subnum >= nummatches) return NULL;
|
||||
offstart = ovector[subnum * 2];
|
||||
+ if (offstart == PCRE2_UNSET) return NULL;
|
||||
offend = ovector[subnum * 2 + 1];
|
||||
- assert(offstart >= 0 && offstart <= subjectlen);
|
||||
- assert(offend >= 0 && offend <= subjectlen);
|
||||
+ assert(offstart <= subjectlen);
|
||||
+ assert(offend != PCRE2_UNSET && offend <= subjectlen);
|
||||
findstr = command_args.str_args[1];
|
||||
findstrlen = command_args.str_args_len[1];
|
||||
replstr = command_args.str_args[2];
|
||||
replstrlen = command_args.str_args_len[2];
|
||||
- for(i=offstart; i < offend; ) {
|
||||
+ for(PCRE2_SIZE i=offstart; i < offend; ) {
|
||||
if (memcmp(subject + i, findstr, findstrlen) != 0) {
|
||||
strbuf_append(&result, &n, &len, (const char *) subject + i, 1); // no match
|
||||
i++;
|
||||
@@ -800,8 +814,9 @@ static char *substvar(char *tmplvar, char **tmplvarend,
|
||||
if (subnum > 9 || subnum <= 0) return NULL;
|
||||
if (subnum >= nummatches) return NULL;
|
||||
offstart = ovector[subnum * 2];
|
||||
+ if (offstart == PCRE2_UNSET) return NULL;
|
||||
offend = ovector[subnum * 2 + 1];
|
||||
- assert(offstart >= 0 && offstart <= subjectlen);
|
||||
+ assert(offend != PCRE2_UNSET && offstart <= subjectlen);
|
||||
|
||||
// overflow
|
||||
if (offend - offstart > 8) {
|
||||
@@ -819,11 +834,11 @@ static char *substvar(char *tmplvar, char **tmplvarend,
|
||||
break;
|
||||
}
|
||||
if (bigendian) {
|
||||
- for(i=offstart; i < offend; i++) {
|
||||
+ for(PCRE2_SIZE i=offstart; i < offend; i++) {
|
||||
val = (val<<8) + subject[i];
|
||||
}
|
||||
} else {
|
||||
- for(i=offend - 1; i > offstart - 1; i--) {
|
||||
+ for(PCRE2_SIZE i=offend - 1; i > offstart - 1; i--) {
|
||||
val = (val<<8) + subject[i];
|
||||
}
|
||||
}
|
||||
@@ -842,16 +857,16 @@ static char *substvar(char *tmplvar, char **tmplvarend,
|
||||
|
||||
// This function takes a template string (tmpl) which can have
|
||||
// placeholders in it such as $1 for substring matches in a regexp
|
||||
-// that was run against subject, and subjectlen, with the 'nummatches'
|
||||
-// matches in ovector. The NUL-terminated newly composted string is
|
||||
+// that was run against subject, and subjectlen, with the
|
||||
+// matches in match_data. The NUL-terminated newly composted string is
|
||||
// placed into 'newstr', as long as it doesn't exceed 'newstrlen'
|
||||
// bytes. Trailing whitespace and commas are removed. Returns zero for success
|
||||
//
|
||||
// The transform argument is a function pointer. If not NULL, the given
|
||||
// function is applied to all substitutions before they are inserted
|
||||
// into the result string.
|
||||
-static int dotmplsubst(const u8 *subject, int subjectlen,
|
||||
- int *ovector, int nummatches, char *tmpl, char *newstr,
|
||||
+static int dotmplsubst(const u8 *subject, size_t subjectlen,
|
||||
+ pcre2_match_data *match_data, char *tmpl, char *newstr,
|
||||
int newstrlen,
|
||||
char *(*transform)(const char *) = NULL) {
|
||||
int newlen;
|
||||
@@ -890,7 +905,7 @@ static int dotmplsubst(const u8 *subject, int subjectlen,
|
||||
dst += newlen;
|
||||
}
|
||||
srcstart = srcend;
|
||||
- subst = substvar(srcstart, &srcend, subject, subjectlen, ovector, nummatches);
|
||||
+ subst = substvar(srcstart, &srcend, subject, subjectlen, match_data);
|
||||
if (subst == NULL)
|
||||
return -1;
|
||||
/* Apply transformation if requested. */
|
||||
@@ -932,14 +947,14 @@ static int dotmplsubst(const u8 *subject, int subjectlen,
|
||||
// for a string, that string will have zero length after the function
|
||||
// call (assuming the corresponding length passed in is at least 1)
|
||||
|
||||
-int ServiceProbeMatch::getVersionStr(const u8 *subject, int subjectlen,
|
||||
- int *ovector, int nummatches, char *product, int productlen,
|
||||
- char *version, int versionlen, char *info, int infolen,
|
||||
- char *hostname, int hostnamelen, char *ostype, int ostypelen,
|
||||
- char *devicetype, int devicetypelen,
|
||||
- char *cpe_a, int cpe_alen,
|
||||
- char *cpe_h, int cpe_hlen,
|
||||
- char *cpe_o, int cpe_olen) const {
|
||||
+int ServiceProbeMatch::getVersionStr(const u8 *subject, size_t subjectlen,
|
||||
+ char *product, size_t productlen,
|
||||
+ char *version, size_t versionlen, char *info, size_t infolen,
|
||||
+ char *hostname, size_t hostnamelen, char *ostype, size_t ostypelen,
|
||||
+ char *devicetype, size_t devicetypelen,
|
||||
+ char *cpe_a, size_t cpe_alen,
|
||||
+ char *cpe_h, size_t cpe_hlen,
|
||||
+ char *cpe_o, size_t cpe_olen) const {
|
||||
|
||||
int rc;
|
||||
assert(productlen >= 0 && versionlen >= 0 && infolen >= 0 &&
|
||||
@@ -958,9 +973,9 @@ int ServiceProbeMatch::getVersionStr(const u8 *subject, int subjectlen,
|
||||
|
||||
// Now lets get this started! We begin with the product name
|
||||
if (product_template) {
|
||||
- rc = dotmplsubst(subject, subjectlen, ovector, nummatches, product_template, product, productlen);
|
||||
+ rc = dotmplsubst(subject, subjectlen, match_data, product_template, product, productlen);
|
||||
if (rc != 0) {
|
||||
- error("Warning: Servicescan failed to fill product_template (subjectlen: %d, productlen: %d). Capture exceeds length? Match string was line %d: p/%s/%s/%s", subjectlen, productlen, deflineno,
|
||||
+ error("Warning: Servicescan failed to fill product_template (subjectlen: %lu, productlen: %lu). Capture exceeds length? Match string was line %d: p/%s/%s/%s", subjectlen, productlen, deflineno,
|
||||
(product_template)? product_template : "",
|
||||
(version_template)? version_template : "",
|
||||
(info_template)? info_template : "");
|
||||
@@ -970,9 +985,9 @@ int ServiceProbeMatch::getVersionStr(const u8 *subject, int subjectlen,
|
||||
}
|
||||
|
||||
if (version_template) {
|
||||
- rc = dotmplsubst(subject, subjectlen, ovector, nummatches, version_template, version, versionlen);
|
||||
+ rc = dotmplsubst(subject, subjectlen, match_data, version_template, version, versionlen);
|
||||
if (rc != 0) {
|
||||
- error("Warning: Servicescan failed to fill version_template (subjectlen: %d, versionlen: %d). Capture exceeds length? Match string was line %d: v/%s/%s/%s", subjectlen, versionlen, deflineno,
|
||||
+ error("Warning: Servicescan failed to fill version_template (subjectlen: %lu, versionlen: %lu). Capture exceeds length? Match string was line %d: v/%s/%s/%s", subjectlen, versionlen, deflineno,
|
||||
(product_template)? product_template : "",
|
||||
(version_template)? version_template : "",
|
||||
(info_template)? info_template : "");
|
||||
@@ -982,9 +997,9 @@ int ServiceProbeMatch::getVersionStr(const u8 *subject, int subjectlen,
|
||||
}
|
||||
|
||||
if (info_template) {
|
||||
- rc = dotmplsubst(subject, subjectlen, ovector, nummatches, info_template, info, infolen);
|
||||
+ rc = dotmplsubst(subject, subjectlen, match_data, info_template, info, infolen);
|
||||
if (rc != 0) {
|
||||
- error("Warning: Servicescan failed to fill info_template (subjectlen: %d, infolen: %d). Capture exceeds length? Match string was line %d: i/%s/%s/%s", subjectlen, infolen, deflineno,
|
||||
+ error("Warning: Servicescan failed to fill info_template (subjectlen: %lu, infolen: %lu). Capture exceeds length? Match string was line %d: i/%s/%s/%s", subjectlen, infolen, deflineno,
|
||||
(product_template)? product_template : "",
|
||||
(version_template)? version_template : "",
|
||||
(info_template)? info_template : "");
|
||||
@@ -994,9 +1009,9 @@ int ServiceProbeMatch::getVersionStr(const u8 *subject, int subjectlen,
|
||||
}
|
||||
|
||||
if (hostname_template) {
|
||||
- rc = dotmplsubst(subject, subjectlen, ovector, nummatches, hostname_template, hostname, hostnamelen);
|
||||
+ rc = dotmplsubst(subject, subjectlen, match_data, hostname_template, hostname, hostnamelen);
|
||||
if (rc != 0) {
|
||||
- error("Warning: Servicescan failed to fill hostname_template (subjectlen: %d, hostnamelen: %d). Capture exceeds length? Match string was line %d: h/%s/", subjectlen, hostnamelen, deflineno,
|
||||
+ error("Warning: Servicescan failed to fill hostname_template (subjectlen: %lu, hostnamelen: %lu). Capture exceeds length? Match string was line %d: h/%s/", subjectlen, hostnamelen, deflineno,
|
||||
(hostname_template)? hostname_template : "");
|
||||
if (hostnamelen > 0) *hostname = '\0';
|
||||
retval = -1;
|
||||
@@ -1004,9 +1019,9 @@ int ServiceProbeMatch::getVersionStr(const u8 *subject, int subjectlen,
|
||||
}
|
||||
|
||||
if (ostype_template) {
|
||||
- rc = dotmplsubst(subject, subjectlen, ovector, nummatches, ostype_template, ostype, ostypelen);
|
||||
+ rc = dotmplsubst(subject, subjectlen, match_data, ostype_template, ostype, ostypelen);
|
||||
if (rc != 0) {
|
||||
- error("Warning: Servicescan failed to fill ostype_template (subjectlen: %d, ostypelen: %d). Capture exceeds length? Match string was line %d: o/%s/", subjectlen, ostypelen, deflineno,
|
||||
+ error("Warning: Servicescan failed to fill ostype_template (subjectlen: %lu, ostypelen: %lu). Capture exceeds length? Match string was line %d: o/%s/", subjectlen, ostypelen, deflineno,
|
||||
(ostype_template)? ostype_template : "");
|
||||
if (ostypelen > 0) *ostype = '\0';
|
||||
retval = -1;
|
||||
@@ -1014,9 +1029,9 @@ int ServiceProbeMatch::getVersionStr(const u8 *subject, int subjectlen,
|
||||
}
|
||||
|
||||
if (devicetype_template) {
|
||||
- rc = dotmplsubst(subject, subjectlen, ovector, nummatches, devicetype_template, devicetype, devicetypelen);
|
||||
+ rc = dotmplsubst(subject, subjectlen, match_data, devicetype_template, devicetype, devicetypelen);
|
||||
if (rc != 0) {
|
||||
- error("Warning: Servicescan failed to fill devicetype_template (subjectlen: %d, devicetypelen: %d). Too long? Match string was line %d: d/%s/", subjectlen, devicetypelen, deflineno,
|
||||
+ error("Warning: Servicescan failed to fill devicetype_template (subjectlen: %lu, devicetypelen: %lu). Too long? Match string was line %d: d/%s/", subjectlen, devicetypelen, deflineno,
|
||||
(devicetype_template)? devicetype_template : "");
|
||||
if (devicetypelen > 0) *devicetype = '\0';
|
||||
retval = -1;
|
||||
@@ -1027,7 +1042,7 @@ int ServiceProbeMatch::getVersionStr(const u8 *subject, int subjectlen,
|
||||
store in cpe_a, cpe_h, or cpe_o as appropriate. */
|
||||
for (unsigned int i = 0; i < cpe_templates.size(); i++) {
|
||||
char *cpe;
|
||||
- int cpelen;
|
||||
+ size_t cpelen;
|
||||
int part;
|
||||
|
||||
part = cpe_get_part(cpe_templates[i]);
|
||||
@@ -1050,9 +1065,9 @@ int ServiceProbeMatch::getVersionStr(const u8 *subject, int subjectlen,
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
- rc = dotmplsubst(subject, subjectlen, ovector, nummatches, cpe_templates[i], cpe, cpelen, transform_cpe);
|
||||
+ rc = dotmplsubst(subject, subjectlen, match_data, cpe_templates[i], cpe, cpelen, transform_cpe);
|
||||
if (rc != 0) {
|
||||
- error("Warning: Servicescan failed to fill cpe_%c (subjectlen: %d, cpelen: %d). Too long? Match string was line %d: %s", part, subjectlen, cpelen, deflineno,
|
||||
+ error("Warning: Servicescan failed to fill cpe_%c (subjectlen: %lu, cpelen: %lu). Too long? Match string was line %d: %s", part, subjectlen, cpelen, deflineno,
|
||||
(cpe_templates[i])? cpe_templates[i] : "");
|
||||
if (cpelen > 0) *cpe = '\0';
|
||||
retval = -1;
|
||||
diff --git a/service_scan.h b/service_scan.h
|
||||
index b17e3d2420..0ff168b6fc 100644
|
||||
--- a/service_scan.h
|
||||
+++ b/service_scan.h
|
||||
@@ -71,16 +71,8 @@
|
||||
|
||||
#include <vector>
|
||||
|
||||
-#ifdef HAVE_CONFIG_H
|
||||
-/* Needed for HAVE_PCRE_PCRE_H below */
|
||||
-#include "nmap_config.h"
|
||||
-#endif /* HAVE_CONFIG_H */
|
||||
-
|
||||
-#ifdef HAVE_PCRE_PCRE_H
|
||||
-# include <pcre/pcre.h>
|
||||
-#else
|
||||
-# include <pcre.h>
|
||||
-#endif
|
||||
+#define PCRE2_CODE_UNIT_WIDTH 8
|
||||
+#include <pcre2.h>
|
||||
|
||||
#undef NDEBUG
|
||||
#include <assert.h>
|
||||
@@ -162,8 +154,9 @@ class ServiceProbeMatch {
|
||||
int matchtype; // SERVICEMATCH_REGEX or SERVICESCAN_STATIC
|
||||
char *matchstr; // Regular expression text, or static string
|
||||
int matchstrlen; // Because static strings may have embedded NULs
|
||||
- pcre *regex_compiled;
|
||||
- pcre_extra *regex_extra;
|
||||
+ pcre2_code *regex_compiled;
|
||||
+ pcre2_match_data *match_data;
|
||||
+ pcre2_match_context *match_context;
|
||||
bool matchops_ignorecase;
|
||||
bool matchops_dotall;
|
||||
bool isSoft; // is this a soft match? ("softmatch" keyword in nmap-service-probes)
|
||||
@@ -189,14 +182,14 @@ class ServiceProbeMatch {
|
||||
// are sufficient). Returns zero for success. If no template is available
|
||||
// for a string, that string will have zero length after the function
|
||||
// call (assuming the corresponding length passed in is at least 1)
|
||||
- int getVersionStr(const u8 *subject, int subjectlen, int *ovector,
|
||||
- int nummatches, char *product, int productlen,
|
||||
- char *version, int versionlen, char *info, int infolen,
|
||||
- char *hostname, int hostnamelen, char *ostype, int ostypelen,
|
||||
- char *devicetype, int devicetypelen,
|
||||
- char *cpe_a, int cpe_alen,
|
||||
- char *cpe_h, int cpe_hlen,
|
||||
- char *cpe_o, int cpe_olen) const;
|
||||
+ int getVersionStr(const u8 *subject, size_t subjectlen,
|
||||
+ char *product, size_t productlen,
|
||||
+ char *version, size_t versionlen, char *info, size_t infolen,
|
||||
+ char *hostname, size_t hostnamelen, char *ostype, size_t ostypelen,
|
||||
+ char *devicetype, size_t devicetypelen,
|
||||
+ char *cpe_a, size_t cpe_alen,
|
||||
+ char *cpe_h, size_t cpe_hlen,
|
||||
+ char *cpe_o, size_t cpe_olen) const;
|
||||
};
|
||||
|
||||
|
||||
From d131a096a869195be36ef7d4fa36739373346cb2 Mon Sep 17 00:00:00 2001
|
||||
From: dmiller <dmiller@e0a8ed71-7df4-0310-8962-fdc924857419>
|
||||
Date: Sat, 24 Jun 2023 01:53:09 +0000
|
||||
Subject: [PATCH] Remove nse_pcrelib from build.
|
||||
|
||||
---
|
||||
Backported to 7.93
|
||||
|
||||
Makefile.in | 6 +++---
|
||||
nse_main.cc | 2 --
|
||||
nse_main.lua | 2 +-
|
||||
nselib/unittest.lua | 1 -
|
||||
4 files changed, 4 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 2b13e866e7..a924301240 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -88,9 +88,9 @@ UNINSTALLNDIFF=@UNINSTALLNDIFF@
|
||||
UNINSTALLNPING=@UNINSTALLNPING@
|
||||
|
||||
ifneq (@NOLUA@,yes)
|
||||
-NSE_SRC=nse_main.cc nse_utility.cc nse_nsock.cc nse_dnet.cc nse_fs.cc nse_nmaplib.cc nse_debug.cc nse_pcrelib.cc nse_lpeg.cc
|
||||
-NSE_HDRS=nse_main.h nse_utility.h nse_nsock.h nse_dnet.h nse_fs.h nse_nmaplib.h nse_debug.h nse_pcrelib.h nse_lpeg.h
|
||||
-NSE_OBJS=nse_main.o nse_utility.o nse_nsock.o nse_dnet.o nse_fs.o nse_nmaplib.o nse_debug.o nse_pcrelib.o nse_lpeg.o
|
||||
+NSE_SRC=nse_main.cc nse_utility.cc nse_nsock.cc nse_dnet.cc nse_fs.cc nse_nmaplib.cc nse_debug.cc nse_lpeg.cc
|
||||
+NSE_HDRS=nse_main.h nse_utility.h nse_nsock.h nse_dnet.h nse_fs.h nse_nmaplib.h nse_debug.h nse_lpeg.h
|
||||
+NSE_OBJS=nse_main.o nse_utility.o nse_nsock.o nse_dnet.o nse_fs.o nse_nmaplib.o nse_debug.o nse_lpeg.o
|
||||
ifneq (@OPENSSL_LIBS@,)
|
||||
NSE_SRC+=nse_openssl.cc nse_ssl_cert.cc
|
||||
NSE_HDRS+=nse_openssl.h nse_ssl_cert.h
|
||||
diff --git a/nse_main.cc b/nse_main.cc
|
||||
index d5d460e6d4..2382688bd7 100644
|
||||
--- a/nse_main.cc
|
||||
+++ b/nse_main.cc
|
||||
@@ -14,7 +14,6 @@
|
||||
#include "nse_fs.h"
|
||||
#include "nse_nsock.h"
|
||||
#include "nse_nmaplib.h"
|
||||
-#include "nse_pcrelib.h"
|
||||
#include "nse_openssl.h"
|
||||
#include "nse_debug.h"
|
||||
#include "nse_lpeg.h"
|
||||
@@ -557,7 +556,6 @@ static int panic (lua_State *L)
|
||||
static void set_nmap_libraries (lua_State *L)
|
||||
{
|
||||
static const luaL_Reg libs[] = {
|
||||
- {NSE_PCRELIBNAME, luaopen_pcrelib},
|
||||
{NSE_NMAPLIBNAME, luaopen_nmap},
|
||||
{LFSLIBNAME, luaopen_lfs},
|
||||
{LPEGLIBNAME, luaopen_lpeg},
|
||||
diff --git a/nse_main.lua b/nse_main.lua
|
||||
index 24c9d2ae7e..596aba9ba0 100644
|
||||
--- a/nse_main.lua
|
||||
+++ b/nse_main.lua
|
||||
@@ -285,7 +285,7 @@ local REQUIRE_ERROR = {};
|
||||
rawset(stdnse, "silent_require", function (...)
|
||||
local status, mod = pcall(require, ...);
|
||||
if not status then
|
||||
- print_debug(1, "%s", traceback(mod));
|
||||
+ print_debug(2, "%s", traceback(mod));
|
||||
error(REQUIRE_ERROR)
|
||||
else
|
||||
return mod;
|
||||
diff --git a/nselib/unittest.lua b/nselib/unittest.lua
|
||||
index c3043fbc0b..c4e593f0ad 100644
|
||||
--- a/nselib/unittest.lua
|
||||
+++ b/nselib/unittest.lua
|
||||
@@ -107,7 +107,6 @@ local libs = {
|
||||
"ospf",
|
||||
"outlib",
|
||||
"packet",
|
||||
-"pcre",
|
||||
"pgsql",
|
||||
"pop3",
|
||||
"pppoe",
|
||||
|
||||
386
nmap.spec
386
nmap.spec
@ -1,30 +1,28 @@
|
||||
#Todo: stop using local copy of libdnet, once system distributed version
|
||||
#supports sctp (grep sctp /usr/include/dnet.h)
|
||||
## START: Set by rpmautospec
|
||||
## (rpmautospec version 0.6.5)
|
||||
## RPMAUTOSPEC: autorelease, autochangelog
|
||||
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
|
||||
release_number = 3;
|
||||
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
|
||||
print(release_number + base_release_number - 1);
|
||||
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
|
||||
## END: Set by rpmautospec
|
||||
|
||||
%global _hardened_build 1
|
||||
%if 0%{?fedora} && 0%{?fedora} <= 28
|
||||
%global with_frontend 1
|
||||
%else
|
||||
%global with_frontend 0
|
||||
%endif
|
||||
|
||||
Summary: Network exploration tool and security scanner
|
||||
Name: nmap
|
||||
Epoch: 2
|
||||
Epoch: 4
|
||||
Version: 7.92
|
||||
#global prerelease TEST5
|
||||
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
|
||||
Group: Applications/System
|
||||
Requires: %{name}-ncat = %{epoch}:%{version}-%{release}
|
||||
Release: %autorelease
|
||||
Summary: Network exploration tool and security scanner
|
||||
URL: http://nmap.org/
|
||||
# https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/thread/Q67UGCHSCKCLJOVOHSLYU4AERAHBS5YE/
|
||||
# https://gitlab.com/fedora/legal/fedora-license-data/-/issues/543
|
||||
License: LicenseRef-Nmap
|
||||
|
||||
Source0: http://nmap.org/dist/%{name}-%{version}%{?prerelease}.tar.bz2
|
||||
%if %{with_frontend}
|
||||
Source1: zenmap.desktop
|
||||
Source2: zenmap-root.pamd
|
||||
Source3: zenmap.appdata.xml
|
||||
%endif
|
||||
Source1: https://nmap.org/dist/sigs/%{name}-%{version}.tar.bz2.asc
|
||||
Source2: https://svn.nmap.org/nmap/docs/nmap_gpgkeys.txt
|
||||
|
||||
|
||||
#prevent possible race condition for shtool, rhbz#158996
|
||||
Patch1: nmap-4.03-mktemp.patch
|
||||
@ -34,23 +32,34 @@ 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
|
||||
|
||||
# TODO: review after GUI gets enabled again
|
||||
#Patch4: nmap-6.25-displayerror.patch
|
||||
# https://github.com/nmap/nmap/pull/2247
|
||||
Patch5: nmap_resolve_config.patch
|
||||
Patch7: nmap_resolve_config.patch
|
||||
# backport of upstream pcre2 migration, rhbz#2128336
|
||||
Patch8: nmap-pcre2.patch
|
||||
# https://github.com/nmap/nmap/pull/2724
|
||||
Patch9: nmap-ems-ssl-enum-ciphers.patch
|
||||
|
||||
URL: http://nmap.org/
|
||||
|
||||
BuildRequires: automake make
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: openssl-devel, gtk2-devel, lua-devel, libpcap-devel, pcre-devel
|
||||
BuildRequires: desktop-file-utils, dos2unix
|
||||
BuildRequires: libtool, automake, autoconf, gettext-devel
|
||||
|
||||
%if ! %{with_frontend}
|
||||
Obsoletes: nmap-frontend
|
||||
Obsoletes: nmap-ndiff
|
||||
BuildRequires: gettext-devel
|
||||
BuildRequires: libpcap-devel
|
||||
%if 0%{?fedora}
|
||||
BuildRequires: libssh2-devel
|
||||
%endif
|
||||
BuildRequires: libtool
|
||||
BuildRequires: lua-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: pcre2-devel
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: gnupg2
|
||||
Requires: %{name}-ncat = %{epoch}:%{version}-%{release}
|
||||
|
||||
|
||||
Obsoletes: nmap-frontend < 7.70-1
|
||||
Obsoletes: nmap-ndiff < 7.70-1
|
||||
|
||||
%define pixmap_srcdir zenmap/share/pixmaps
|
||||
|
||||
@ -66,36 +75,15 @@ data transfer, redirection, and debugging tool (netcat utility ncat), a utility
|
||||
for comparing scan results (ndiff), and a packet generation and response
|
||||
analysis tool (nping).
|
||||
|
||||
%if %{with_frontend}
|
||||
%package frontend
|
||||
Summary: The GTK+ front end for nmap
|
||||
Group: Applications/System
|
||||
Requires: nmap = %{epoch}:%{version} gtk2 python2 >= 2.5 pygtk2 usermode
|
||||
Requires: nmap-ndiff = %{epoch}:%{version}
|
||||
BuildRequires: python2-devel pygtk2-devel libpng-devel
|
||||
BuildArch: noarch
|
||||
|
||||
%description frontend
|
||||
This package includes zenmap, a GTK+ front end for nmap. The nmap package must
|
||||
be installed before installing nmap front end.
|
||||
|
||||
%package ndiff
|
||||
Summary: Ndiff is a tool to aid in the comparison of Nmap scans
|
||||
Group: Applications/System
|
||||
BuildRequires: python2 >= 2.5
|
||||
Requires: nmap = %{epoch}:%{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description ndiff
|
||||
%{summary}
|
||||
%endif
|
||||
|
||||
%package ncat
|
||||
Group: Applications/System
|
||||
Summary: Nmap's Netcat replacement
|
||||
Requires(post): %{_sbindir}/alternatives
|
||||
Requires(preun): %{_sbindir}/alternatives
|
||||
Obsoletes: nc < 1.109.20120711-2
|
||||
Obsoletes: nc6 < 1.00-22
|
||||
Provides: nc nc6
|
||||
Provides: nc = %{epoch}:%{version}-%{release}
|
||||
Provides: nc6 = %{epoch}:%{version}-%{release}
|
||||
Provides: ncat = %{epoch}:%{version}-%{release}
|
||||
|
||||
%description ncat
|
||||
Ncat is a feature packed networking utility which will read and
|
||||
@ -106,48 +94,33 @@ applications and users. Ncat will not only work with IPv4 and IPv6
|
||||
but provides the user with a virtually limitless number of potential
|
||||
uses.
|
||||
|
||||
%if 0%{?rhel} && 0%{?rhel} >= 0
|
||||
Requires(post): %{_sbindir}/update-alternatives
|
||||
Requires(postun): %{_sbindir}/update-alternatives
|
||||
%endif
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{name}-%{version}%{?prerelease}
|
||||
%{gpgverify} --keyring=%{SOURCE2} --signature='%{SOURCE1}' --data='%{SOURCE0}'
|
||||
%autosetup -p1
|
||||
autoconf -f
|
||||
|
||||
#TODO: stop using local copy of libdnet, once system distributed version
|
||||
#supports sctp (grep sctp /usr/include/dnet.h)
|
||||
#be sure we're not using tarballed copies of some libraries
|
||||
#rm -rf liblua libpcap libpcre macosx mswin32 ###TODO###
|
||||
|
||||
rm -rf libpcap libpcre macosx mswin32 libssh2 libz
|
||||
|
||||
# for aarch64 support, not needed with autotools 2.69+
|
||||
for f in acinclude.m4 configure.ac nping/configure.ac
|
||||
do
|
||||
sed -i -e 's/\(AC_DEFINE([^,)]*\))/\1, 1, [Description])/' -e 's/\(AC_DEFINE([^,]*,[^,)]*\))/\1, [Description])/' $f
|
||||
done
|
||||
autoreconf -I . -fiv --no-recursive
|
||||
cd nping; autoreconf -I .. -fiv --no-recursive; cd ..
|
||||
|
||||
%if %{with_frontend}
|
||||
#fix locale dir
|
||||
mv zenmap/share/zenmap/locale zenmap/share
|
||||
sed -i -e "s|^locale_dir =.*$|locale_dir = os.path.join('share','locale')|" \
|
||||
-e 's|join(self.install_data, data_dir)|join(self.install_data, "share")|' zenmap/setup.py
|
||||
sed -i 's|^LOCALE_DIR = .*|LOCALE_DIR = join(prefix, "share", "locale")|' zenmap/zenmapCore/Paths.py
|
||||
%endif
|
||||
|
||||
%build
|
||||
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
||||
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
||||
### TODO ## configure --with-libpcap=/usr ###TODO###
|
||||
### TODO if 0%{%fedora} --with-libsssh
|
||||
%configure --with-libpcap=yes --with-liblua=included \
|
||||
%if ! %{with_frontend}
|
||||
--without-zenmap \
|
||||
--without-ndiff \
|
||||
--without-zenmap --without-ndiff \
|
||||
%if 0%{?fedora}
|
||||
--with-libssh2=yes \
|
||||
%else
|
||||
--with-libssh2=no \
|
||||
%endif
|
||||
--enable-dbus --without-libssh2
|
||||
make %{?_smp_mflags}
|
||||
--enable-dbus
|
||||
|
||||
%make_build
|
||||
|
||||
#fix man page (rhbz#813734)
|
||||
sed -i 's/-md/-mf/' nping/docs/nping.1
|
||||
@ -160,72 +133,23 @@ make DESTDIR=%{buildroot} STRIP=true install
|
||||
rm -f %{buildroot}%{_datadir}/ncat/ca-bundle.crt
|
||||
rmdir %{buildroot}%{_datadir}/ncat
|
||||
|
||||
%if 0%{?fedora} && 0%{?fedora} >= 0
|
||||
# we provide 'nc' replacement
|
||||
# Do not create symlinks on manpages on rhel because of
|
||||
# rhbz#1578776
|
||||
ln -s ncat.1.gz %{buildroot}/%{_mandir}/man1/nc.1.gz
|
||||
ln -s ncat %{buildroot}/%{_bindir}/nc
|
||||
%endif
|
||||
|
||||
%if %{with_frontend}
|
||||
rm -f %{buildroot}%{_bindir}/uninstall_zenmap
|
||||
#do not include uninstall script
|
||||
rm -f %{buildroot}%{_bindir}/uninstall_ndiff
|
||||
|
||||
rm -f %{buildroot}%{_datadir}/applications/zenmap*.desktop
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/pam.d
|
||||
install -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pam.d/zenmap-root
|
||||
|
||||
cp docs/zenmap.1 %{buildroot}%{_mandir}/man1/
|
||||
gzip %{buildroot}%{_mandir}/man1/* || :
|
||||
pushd %{buildroot}%{_mandir}/man1
|
||||
ln -s zenmap.1.gz nmapfe.1.gz
|
||||
ln -s zenmap.1.gz xnmap.1.gz
|
||||
popd
|
||||
|
||||
desktop-file-install --vendor nmap \
|
||||
--dir %{buildroot}%{_datadir}/applications \
|
||||
--add-category X-Red-Hat-Base \
|
||||
%{SOURCE1};
|
||||
|
||||
mkdir -p %{buildroot}/%{_datadir}/metainfo/
|
||||
install -p -m 0644 %SOURCE3 %{buildroot}/%{_datadir}/metainfo/
|
||||
|
||||
#for .desktop and app icon
|
||||
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/256x256/apps
|
||||
ln -s ../../../../zenmap/pixmaps/zenmap.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps
|
||||
|
||||
# fix end-of-line
|
||||
pushd %{buildroot}
|
||||
for fe in ./%{python_sitelib}/zenmapCore/Paths.py
|
||||
do
|
||||
dos2unix <$fe >$fe.new
|
||||
touch -r $fe $fe.new
|
||||
mv -f $fe.new $fe
|
||||
done
|
||||
popd
|
||||
%find_lang zenmap
|
||||
%endif
|
||||
|
||||
%find_lang nmap --with-man
|
||||
#we provide 'nc' replacement (#1653119)
|
||||
touch %{buildroot}%{_mandir}/man1/nc.1.gz
|
||||
touch %{buildroot}%{_bindir}/nc
|
||||
|
||||
%find_lang nmap --with-man
|
||||
|
||||
%post ncat
|
||||
%{_sbindir}/update-alternatives --install %{_bindir}/nc \
|
||||
%{name} %{_bindir}/ncat 10 \
|
||||
--slave %{_mandir}/man1/nc.1.gz ncman %{_mandir}/man1/ncat.1.gz
|
||||
%{_sbindir}/alternatives --install %{_bindir}/nc nc %{_bindir}/ncat 10 \
|
||||
--slave %{_mandir}/man1/nc.1.gz nc-man %{_mandir}/man1/ncat.1.gz
|
||||
|
||||
## ln -s ncat.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/nc.1.gz
|
||||
|
||||
%postun ncat
|
||||
if [ $1 -eq 0 ] ; then
|
||||
%{_sbindir}/update-alternatives --remove %{name} %{_bindir}/ncat
|
||||
%preun ncat
|
||||
if [ $1 -eq 0 ]; then
|
||||
%{_sbindir}/alternatives --remove nc %{_bindir}/ncat
|
||||
fi
|
||||
|
||||
|
||||
%files -f nmap.lang
|
||||
%doc LICENSE
|
||||
%license LICENSE
|
||||
%doc docs/README
|
||||
%doc docs/nmap.usage.txt
|
||||
%{_bindir}/nmap
|
||||
@ -235,64 +159,132 @@ fi
|
||||
%{_datadir}/nmap
|
||||
|
||||
%files ncat
|
||||
%doc LICENSE ncat/docs/AUTHORS ncat/docs/README ncat/docs/THANKS ncat/docs/examples
|
||||
%if 0%{?fedora} && 0%{?fedora} >= 0
|
||||
%{_bindir}/nc
|
||||
%{_mandir}/man1/nc.1.gz
|
||||
%else
|
||||
%license LICENSE
|
||||
%doc ncat/docs/AUTHORS ncat/docs/README ncat/docs/THANKS ncat/docs/examples
|
||||
%ghost %{_bindir}/nc
|
||||
%ghost %{_mandir}/man1/nc.1.gz
|
||||
%endif
|
||||
%{_bindir}/ncat
|
||||
%ghost %{_mandir}/man1/nc.1.gz
|
||||
%{_mandir}/man1/ncat.1.gz
|
||||
|
||||
%if %{with_frontend}
|
||||
%files ndiff
|
||||
%{_bindir}/ndiff
|
||||
%{python_sitelib}/ndiff.py
|
||||
%{python_sitelib}/ndiff.py?
|
||||
%{_mandir}/man1/ndiff.1.gz
|
||||
|
||||
%files frontend -f zenmap.lang
|
||||
%defattr(-,root,root)
|
||||
%config(noreplace) %{_sysconfdir}/pam.d/zenmap-root
|
||||
%{_bindir}/zenmap
|
||||
%{_bindir}/nmapfe
|
||||
%{_bindir}/xnmap
|
||||
%{python_sitelib}/radialnet
|
||||
%{python_sitelib}/zenmap*
|
||||
%{_datadir}/applications/nmap-zenmap.desktop
|
||||
%{_datadir}/icons/hicolor/256x256/apps/*
|
||||
%{_datadir}/zenmap
|
||||
%{_mandir}/man1/zenmap.1.gz
|
||||
%{_mandir}/man1/nmapfe.1.gz
|
||||
%{_mandir}/man1/xnmap.1.gz
|
||||
%{_datadir}/metainfo/zenmap.appdata.xml
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Mar 21 2023 Martin Osvald <mosvald@redhat.com> - 2:7.92-1
|
||||
## START: Generated by rpmautospec
|
||||
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 4:7.92-3
|
||||
- Bump release for October 2024 mass rebuild:
|
||||
|
||||
* Tue Jul 09 2024 Martin Osvald <mosvald@redhat.com> - 4:7.92-2
|
||||
- Support EMS in ssl-enum-ciphers
|
||||
|
||||
* Tue Jul 09 2024 Martin Osvald <mosvald@redhat.com> - 4:7.92-1
|
||||
- Downgrade Nmap to 7.92 to fix NPSL licensing issue
|
||||
- nmap.spec: fix missing versioned Obsoletes and add ncat to Provides
|
||||
|
||||
* Tue Jul 02 2024 František Hrdina <fhrdina@redhat.com> - 3:7.93-8
|
||||
- Fix broken gating
|
||||
|
||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 3:7.93-7
|
||||
- Bump release for June 2024 mass rebuild
|
||||
|
||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3:7.93-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3:7.93-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Nov 17 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 3:7.93-4
|
||||
- Use pcre2 instead of deprecated pcre (rhbz#2128336)
|
||||
|
||||
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3:7.93-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3:7.93-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Fri Sep 02 2022 Martin Osvald <mosvald@redhat.com> - 3:7.93-1
|
||||
- New version 7.93 (rhbz#2123556)
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3:7.92-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Tue May 10 2022 Martin Osvald <mosvald@redhat.com> - 3:7.92-4
|
||||
- Reverting the last change as it would do more harm than good
|
||||
|
||||
* Thu May 05 2022 Martin Osvald <mosvald@redhat.com> - 3:7.92-3
|
||||
- ncat: close on EOF by default, new --no-terminate option
|
||||
for backward compatibility (#2082270)
|
||||
|
||||
* Tue Feb 22 2022 Martin Osvald <mosvald@redhat.com> - 3:7.92-1
|
||||
- New version 7.92
|
||||
- Resolves: #2166178 - Nmap much slower after libpcap fix
|
||||
- Resolves: #2169766 - Rebase nmap for TLS v1.3 support
|
||||
|
||||
* Tue Aug 23 2022 Martin Osvald <mosvald@redhat.com> - 2:7.70-8
|
||||
- Resolves: #2120294 - wrong connect format
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3:7.91-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Wed May 04 2022 Martin Osvald <mosvald@redhat.com> - 2:7.70-7
|
||||
- Do not listen on ipv6 if it's disabled (#1899824)
|
||||
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 3:7.91-9
|
||||
- Rebuilt with OpenSSL 3.0.0
|
||||
|
||||
* Wed Jul 21 2021 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-6
|
||||
- Use safe variants of FD_ functions (#1914733)
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3:7.91-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Thu Mar 28 2019 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-5
|
||||
- Resolves: #1653119 - Manage nc symlink using alternatives
|
||||
* Wed May 5 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.91-7
|
||||
- Fix crash with unix sockets
|
||||
|
||||
* Mon Sep 17 2018 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-4
|
||||
- Resolves: #1627053 - Obsolete python2 packages
|
||||
* Fri Apr 16 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.91-6
|
||||
- Bumping release because brew doesn't work with Epoch
|
||||
|
||||
* Mon Jun 4 2018 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-3
|
||||
- Disable build with libssh in RHEL (#1584704)
|
||||
* 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)
|
||||
|
||||
* Wed Feb 10 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.80-10
|
||||
- Do not listen on ipv6 if it's disabled
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3:7.80-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Jan 13 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.80-8
|
||||
- Replace FD_ functions with safe implementation (#1914734)
|
||||
|
||||
* Sun Jan 10 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.80-7
|
||||
- Drop nmap >= 7.90
|
||||
|
||||
* Thu Aug 20 2020 Pavel Zhukov <pzhukov@redhat.com> - 2:7.80-6
|
||||
- Drop libssh from eln
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.80-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue May 19 2020 Pavel Zhukov <pzhukov@redhat.com> - 2:7.80-4
|
||||
- Do not assert on unsolicited ARP response (#1836989)
|
||||
|
||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.80-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Tue Aug 13 2019 Peter Robinson <pbrobinson@fedoraproject.org> 2:7.80-2
|
||||
- Re-provide nc, clearly 7 years isn't enough
|
||||
|
||||
* Mon Aug 12 2019 Peter Robinson <pbrobinson@fedoraproject.org> 2:7.80-1
|
||||
- Update to 7.80
|
||||
- Drop features conditionals from old releases
|
||||
- Use %%license, package cleanups
|
||||
|
||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.70-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Thu May 2 2019 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-7
|
||||
- Fix double free when ssh connections fails
|
||||
|
||||
* Tue Feb 5 2019 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-6
|
||||
- Fix ipv6 literals parsing in proxy connection
|
||||
|
||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.70-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Sep 10 2018 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-4
|
||||
- Obsolete frontend packages in f29+ (#1626804)
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.70-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Thu Apr 19 2018 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-2
|
||||
- Do not build zenmap and ndiff because of python2 deprecation
|
||||
@ -350,7 +342,7 @@ fi
|
||||
|
||||
* Tue Jul 18 2017 Pavel Zhukov <pzhukov@redhat.com> - 2:7.50-5
|
||||
- Move ndiff to subpackage (#1471999)
|
||||
- Specify python version
|
||||
- Specify python version
|
||||
|
||||
* Fri Jun 30 2017 Pavel Zhukov <landgraf@fedoraproject.org> - 2:7.50-3
|
||||
- Add provides for nc6 (#1348348)
|
||||
@ -771,7 +763,7 @@ fi
|
||||
- buildprereq for nmap-frontend (#49644)
|
||||
|
||||
* Sun Jul 22 2001 Heikki Korpela <heko@iki.fi>
|
||||
- buildrequire gtk+
|
||||
- buildrequire gtk+
|
||||
|
||||
* Tue Jul 10 2001 Tim Powers <timp@redhat.com>
|
||||
- fix bugs in desktop file (#48341)
|
||||
@ -826,7 +818,7 @@ fi
|
||||
- gzip man pages
|
||||
- strip after files have been installed into buildroot
|
||||
- created separate package for the frontend so that Gtk+ isn't needed for the
|
||||
CLI nmap
|
||||
CLI nmap
|
||||
- not using -f in files section anymore, no need for it since there aren't that
|
||||
many files/dirs
|
||||
- added desktop entry for gnome
|
||||
@ -840,3 +832,5 @@ fi
|
||||
|
||||
* Mon Dec 21 1998 Riku Meskanen <mesrik@cc.jyu.fi>
|
||||
- initial build for RH 5.x
|
||||
|
||||
## END: Generated by rpmautospec
|
||||
|
||||
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)
|
||||
|
||||
mQGiBEJrBfgRBADogo5DEoGsm2C3OC3NoKBQ0J7Ixp/cymuMeGQmDhqP6Vfmxmso
|
||||
BGln4nhDr3WMDW76Q2p6dHTZEbWx3NAna8q3wa3PrPTVRcmEgEgUd8y086I33NqW
|
||||
BV5Fz4bvPWtSGc/4MxXwac+XqrGY+iTkaO3sd4/eEKa/KkJlXpIGAbGbZwCgq9HS
|
||||
bHctYmUWmvz1YXJmFlQvnTsD/RRyTlnQ/AOpq2XPYy5AlUzHMWAef2Dt+wXYKSjp
|
||||
zvqVWtl8QigrWSOP3ia39v+rDUF/CHb1U8mmx9XzRpy9KgS99Wi4IUnBCYM/e/IP
|
||||
K5ReAoNoPMjLmLU4cxYzOxF1yzuSFvhXiKVy/QW6Qo9AP9YdlhlxxXrJA+HrAcXb
|
||||
UE/SBACsoJRsIEyzcfm7Y/KA11enEhxo2nVZ/HpJCq8RHcaXxWFaCglKlydNaw1S
|
||||
vlZkLggRXQrig6aHgVva3WC+gSYMk+SPtzYNrjWiDE+v+DoEFdNEuO8DXScTMGmB
|
||||
pmUtZNWGoK9ewo9kE/ccGDl6lmrxfC9x2nYFHlCvV/PJrbTbfLQzTm1hcCBQcm9q
|
||||
ZWN0IFNpZ25pbmcgS2V5IChodHRwOi8vd3d3Lmluc2VjdXJlLm9yZy8piF4EExEC
|
||||
AB4FAkJrBfgCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQAa+fA2uTVdBGbACf
|
||||
e4qpukKV23yZjlbjEzJeCN8Gyh4AniXrbP7M+ul6zzWTFBgB6heYjKT8iEYEEBEC
|
||||
AAYFAkJrGVAACgkQGvbsUDNZm1+kXgCfbBGI8UxrwiKRbtgYHOUYd6u5qdwAnRFZ
|
||||
ryKFEzkuQGBQWfd6ys6ygjgtuQINBEJrBfoQCADUNWhc7n68jANoWAWl38itVGqI
|
||||
qZEEvchV3m/uslVD0BSn/KRSY9/cZbMTX2hV8eemlGV2suJW4jWB0cQXjZQap4OL
|
||||
WmMexeFA+q1YE803k0X4XgzRuJXkLaX3isCJGbgFRF6IfWmK38/gXz4YVBQXFQXy
|
||||
4M2Y/o2GBsq8cQVgRAZNTQvN5oh2u8WN0wANk+iKySKqBG3Twgh4BbTaoajidSFR
|
||||
hv3xFPw6dQFTd3fYyDlMcOQQcAdzzlS6hTyZuZLOXLdWckilnlP2/orQ5wUs6nXd
|
||||
QeWuxME56z2vwNNeufoLWqNUlR1/IyRAfownDuvdjxYeIgsDd4DP+jInCpPzAAMG
|
||||
CACZ8ewQdpWJ/4CgC7OT865DurNIQH0udm/CSB0mb3v0IxuuXMJml2yMi2NkJh8X
|
||||
KMaluTznz2x8kpPXgmhu+qosAi+YUbdbP+/ilY6+WqLVQewSr7GmxJy6EWW5s2+S
|
||||
3V7yneiDQXBUBMr4WwjfOxX7m/+Io7RSLQaWNq82C2fSukqpootVgLV7CaVJMHvZ
|
||||
iA+3AL32N1d6O6h8bUqEyfOw3kIr19e0OhqWSpQrZs3tkUpwH7/vn/4NkAxjodkP
|
||||
JChf1Y89pU98GBC9JxF+mc2mnDVUnUs31S8kQ/6PhZP8ldn47W2CakHSA3S/M99A
|
||||
gltKiG6MR2z018fqD8FJC3tLiEkEGBECAAkFAkJrBfoCGwwACgkQAa+fA2uTVdBM
|
||||
QgCfciVPJeohzn5mJ4WGE/6B1CyCOIYAn2ghTW1IKTP+tfOgxVg/p8HJOoiz
|
||||
=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)
|
||||
|
||||
mQGiBEJrBG4RBADfjVQenTh2v1NK2N0Wi83pGMm0u/IDDX8eT8lxSR+XdevdcK+F
|
||||
bRhVh+tMhTo1T2OoZkBfYj+OVCWsBZlIxZtGycWaGAwn3MbUEiUJD0YVv4pm4KVk
|
||||
HEZSOYEkzUFIw3IP03Cv6wBDrhk5lAu99+sK0iQGeHGw+gBhIuA3axSeBwCgn86p
|
||||
r+C4P3w61musiflp1SosfSsEALwyE7o60S105UTijAn5tswqecZlumQAxQ+DIeC+
|
||||
9F8mSujIZn8xb1wJtaZb2F0HU0vd67BaOIDXqO7KVe6Tx6JKf5zup2vaGRvUspNv
|
||||
V8CLuSbT7WnnvTBM5dfBMTJw6xLjOsSTk65Q24xcTJ3f2efnYy9imAMl7EzhalBE
|
||||
11pfBADVLuhe6rUpRrhaMJRXZJLdE9A2zcHWtM0X3DDe6QhaWU94JivtORKtleGv
|
||||
atGu4or9jwIhXixeBsvu7RP3bWog5jiLgUWJrvJNeLcFQqIWTtIdh5iuInzezxbg
|
||||
Fvst2YIdUrT+QdcYKKTnJNyUgXQBGKQ18ra8oMvakgUqVjrPnbQcRnlvZG9yIDxm
|
||||
eW9kb3JAaW5zZWN1cmUub3JnPoheBBMRAgAeBQJCawRuAhsDBgsJCAcDAgMVAgMD
|
||||
FgIBAh4BAheAAAoJEBr27FAzWZtfZwcAn0iGnn1p6wXuBTj7VQSdglTtJd46AJ9T
|
||||
Gt51/ZUT2yiFG9vsc5CZn5WiRYicBBMBAgAGBQJCaxEpAAoJEM4dPqJTWH2VO4oE
|
||||
AKso+R5gSO9jhtTiCIMoh9CqeboQCbBKzEwDhy7S7gChAHOz6HeOdcsyfnprwsiH
|
||||
I+FjufxvdtmiIENSzyjqGxbMdO+Zoz5JMx1RtzrkjkE4GLVq0c6NzL/36MUtAjEU
|
||||
tCTFXYZW6Lvu6SgnmlmelrAjqs10vZoOrbOlB/l9mn/EuQINBEJrBHIQCACUlrH2
|
||||
qhVekDKeK9zQlBK2dxcIyPSwP6Tqv+rWvKEzHRUVNBcDSruuNVBNvJC3VQAj0oTA
|
||||
XI+xoWGNx5CInX7qKFaGd9/MlsrEyjasRcY75lkr3QyTSk92q0luX1j+V1uumDWs
|
||||
pacyki0Zt/9FhssjdkljFBPpDRPURxjJdJ6TCq6G0wPjelKsekRNvipIYcrcIs7I
|
||||
EBtqsDCvQBRKgYzjUuziudOMoNFAn6eQHBu/B7RNtRzqTL1ugCjs0AEhLRKw+Ag6
|
||||
bP3lTjmiR33wxajAuUPKe8abe7CfVPrGmihJSJaqULeldSHTugnf84/hTh9BQKYd
|
||||
EZd3QlF72wRmCcnjAAMGB/4oXK4/BXExfnZ+QbmTIyQGJb/OcWa7Dc9WA6DnaE58
|
||||
1BeZgYrKFQMdVpAhUMTxeqPIL4EVc6N+BkSk7JHf5+6DoK8KDJ1RJCCgYmdx7zdT
|
||||
/GAZlUFDiYOs4sx75UZZGFcEEDmIHFC4s7B2HPuSfMoq5vBr0qi6pD1HCgyJV0aG
|
||||
jhQdmfkp+fYEibPWrIGTsayQnYiCrVo3W7C7ZplekoAJkcN0rnfJeV1+kj694XSe
|
||||
U6oYj9RaNoTV1xt1lx5Rwl00HwEYHWAsGmT6+pWmbXo5PT7N7OfcmtclICBsrcjC
|
||||
hKcn6WdTitUR+uOXgL+86Th4W/FYdIXAyyC9KTXhMDmfiEkEGBECAAkFAkJrBHIC
|
||||
GwwACgkQGvbsUDNZm19xAgCeNmaeak8iviUmHje1YAePwEFGleEAn26n8sNrVole
|
||||
NtNX5k7XyTWBQUdG
|
||||
=cBzb
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
@ -1,8 +1,8 @@
|
||||
diff --git a/ncat/ncat_core.c b/ncat/ncat_core.c
|
||||
index 21eca9e..c45a04e 100644
|
||||
index b76d5ea..9f0b0cf 100644
|
||||
--- a/ncat/ncat_core.c
|
||||
+++ b/ncat/ncat_core.c
|
||||
@@ -287,6 +287,7 @@ int resolve(const char *hostname, unsigned short port,
|
||||
@@ -289,6 +289,7 @@ int resolve(const char *hostname, unsigned short port,
|
||||
int result;
|
||||
|
||||
flags = 0;
|
||||
|
||||
36
plans.fmf
36
plans.fmf
@ -1,36 +0,0 @@
|
||||
/tier1-internal:
|
||||
plan:
|
||||
import:
|
||||
url: https://src.fedoraproject.org/tests/nmap.git
|
||||
name: /plans/tier1/internal
|
||||
|
||||
/tier1-public:
|
||||
plan:
|
||||
import:
|
||||
url: https://src.fedoraproject.org/tests/nmap.git
|
||||
name: /plans/tier1/public
|
||||
|
||||
/tier2-tier3-internal:
|
||||
plan:
|
||||
import:
|
||||
url: https://src.fedoraproject.org/tests/nmap.git
|
||||
name: /plans/tier2-tier3/internal
|
||||
|
||||
/tier2-tier3-public:
|
||||
plan:
|
||||
import:
|
||||
url: https://src.fedoraproject.org/tests/nmap.git
|
||||
name: /plans/tier2-tier3/public
|
||||
|
||||
/others-internal:
|
||||
plan:
|
||||
import:
|
||||
url: https://src.fedoraproject.org/tests/nmap.git
|
||||
name: /plans/others/internal
|
||||
|
||||
/others-public:
|
||||
plan:
|
||||
import:
|
||||
url: https://src.fedoraproject.org/tests/nmap.git
|
||||
name: /plans/others/public
|
||||
|
||||
Loading…
Reference in New Issue
Block a user