From f25ae4f0aba103fadd926681145d827ad486939e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 20 Jan 2019 23:28:40 -0800 Subject: nmap: Fix build with clang8/musl/libc++ Signed-off-by: Khem Raj --- ...lude-time.h-for-time-structure-definition.patch | 78 ++++++++++++++++++++++ .../nmap/files/0002-Fix-building-with-libc.patch | 76 +++++++++++++++++++++ meta-oe/recipes-security/nmap/nmap_7.70.bb | 4 +- 3 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-security/nmap/files/0001-include-time.h-for-time-structure-definition.patch create mode 100644 meta-oe/recipes-security/nmap/files/0002-Fix-building-with-libc.patch (limited to 'meta-oe') diff --git a/meta-oe/recipes-security/nmap/files/0001-include-time.h-for-time-structure-definition.patch b/meta-oe/recipes-security/nmap/files/0001-include-time.h-for-time-structure-definition.patch new file mode 100644 index 0000000000..561c8c82cf --- /dev/null +++ b/meta-oe/recipes-security/nmap/files/0001-include-time.h-for-time-structure-definition.patch @@ -0,0 +1,78 @@ +From c774f2b129fd5acd5647d92c57a2079ae638a62b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 20 Jan 2019 23:07:39 -0800 +Subject: [PATCH] include time.h for time structure definition + +Exposed by musl/clang + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + nmap_error.cc | 1 + + nping/EchoServer.cc | 1 + + osscan.cc | 1 + + osscan2.cc | 1 + + service_scan.cc | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/nmap_error.cc b/nmap_error.cc +index 19beafb..ea14e08 100644 +--- a/nmap_error.cc ++++ b/nmap_error.cc +@@ -135,6 +135,7 @@ + #include "xml.h" + + #include ++#include + + extern NmapOps o; + +diff --git a/nping/EchoServer.cc b/nping/EchoServer.cc +index 70f39b0..40cd4d6 100644 +--- a/nping/EchoServer.cc ++++ b/nping/EchoServer.cc +@@ -137,6 +137,7 @@ + #include "NpingOps.h" + #include "ProbeMode.h" + #include ++#include + + extern NpingOps o; + extern EchoServer es; +diff --git a/osscan.cc b/osscan.cc +index f851f60..6ae0c83 100644 +--- a/osscan.cc ++++ b/osscan.cc +@@ -149,6 +149,7 @@ + # include + # endif + #endif ++#include + + #include + #include +diff --git a/osscan2.cc b/osscan2.cc +index e341947..887fbd2 100644 +--- a/osscan2.cc ++++ b/osscan2.cc +@@ -147,6 +147,7 @@ + + #include + #include ++#include + + extern NmapOps o; + #ifdef WIN32 +diff --git a/service_scan.cc b/service_scan.cc +index 9780ae3..e07b940 100644 +--- a/service_scan.cc ++++ b/service_scan.cc +@@ -145,6 +145,7 @@ + #include "nmap_tty.h" + + #include ++#include + + #if HAVE_OPENSSL + /* OpenSSL 1.0.0 needs _WINSOCKAPI_ to be defined, otherwise it loads diff --git a/meta-oe/recipes-security/nmap/files/0002-Fix-building-with-libc.patch b/meta-oe/recipes-security/nmap/files/0002-Fix-building-with-libc.patch new file mode 100644 index 0000000000..064be8ff85 --- /dev/null +++ b/meta-oe/recipes-security/nmap/files/0002-Fix-building-with-libc.patch @@ -0,0 +1,76 @@ +From 2a361989b5f84ec23ba7ccb6e527a5590ff55deb Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 20 Jan 2019 23:11:56 -0800 +Subject: [PATCH] Fix building with libc++ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + nping/EchoServer.cc | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/nping/EchoServer.cc b/nping/EchoServer.cc +index 40cd4d6..04433e1 100644 +--- a/nping/EchoServer.cc ++++ b/nping/EchoServer.cc +@@ -282,14 +282,14 @@ int EchoServer::nep_listen_socket(){ + server_addr6.sin6_len = sizeof(struct sockaddr_in6); + #endif + /* Bind to local address and the specified port */ +- if( bind(master_sd, (struct sockaddr *)&server_addr6, sizeof(server_addr6)) != 0 ){ ++ if( ::bind(master_sd, (struct sockaddr *)&server_addr6, sizeof(server_addr6)) != 0 ){ + nping_warning(QT_3, "Failed to bind to source address %s. Trying to bind to port %d...", IPtoa(server_addr6.sin6_addr), port); + /* If the bind failed for the supplied address, just try again with in6addr_any */ + if( o.spoofSource() ){ + server_addr6.sin6_addr = in6addr_any; +- if( bind(master_sd, (struct sockaddr *)&server_addr6, sizeof(server_addr6)) != 0 ){ ++ if( ::bind(master_sd, (struct sockaddr *)&server_addr6, sizeof(server_addr6)) != 0 ){ + nping_fatal(QT_3, "Could not bind to port %d (%s).", port, strerror(errno)); +- }else{ ++ }else{ + nping_print(VB_1, "Server bound to port %d", port); + } + } +@@ -320,12 +320,12 @@ int EchoServer::nep_listen_socket(){ + #endif + + /* Bind to local address and the specified port */ +- if( bind(master_sd, (struct sockaddr *)&server_addr4, sizeof(server_addr4)) != 0 ){ ++ if( ::bind(master_sd, (struct sockaddr *)&server_addr4, sizeof(server_addr4)) != 0 ){ + nping_warning(QT_3, "Failed to bind to source address %s. Trying to bind to port %d...", IPtoa(server_addr4.sin_addr), port); + /* If the bind failed for the supplied address, just try again with in6addr_any */ + if( o.spoofSource() ){ + server_addr4.sin_addr.s_addr=INADDR_ANY; +- if( bind(master_sd, (struct sockaddr *)&server_addr4, sizeof(server_addr4)) != 0 ){ ++ if( ::bind(master_sd, (struct sockaddr *)&server_addr4, sizeof(server_addr4)) != 0 ){ + nping_fatal(QT_3, "Could not bind to port %d (%s).", port, strerror(errno)); + }else{ + nping_print(VB_1, "Server bound to port %d", port); +@@ -561,7 +561,7 @@ clientid_t EchoServer::nep_match_headers(IPv4Header *ip4, IPv6Header *ip6, TCPHe + nping_print(DBG_3, ";"); + /* The payload magic may affect the score only between + * zero and 4 bytes. This is done to prevent long +- * common strings like "GET / HTTP/1.1\r\n" ++ * common strings like "GET / HTTP/1.1\r\n" + * increasing the score a lot and cause problems for + * the matching logic. */ + current_score+= MIN(4, fspec->len)*FACTOR_PAYLOAD_MAGIC; +@@ -571,7 +571,7 @@ clientid_t EchoServer::nep_match_headers(IPv4Header *ip4, IPv6Header *ip6, TCPHe + default: + nping_warning(QT_2, "Bogus field specifier found in client #%d context. Please report a bug", ctx->getIdentifier()); + break; +- } ++ } + } /* End of field specifiers loop */ + + nping_print(DBG_3, "%s() current_score=%.02f candidate_score=%.02f", __func__, current_score, candidate_score); +@@ -650,7 +650,7 @@ clientid_t EchoServer::nep_match_packet(const u8 *pkt, size_t pktlen){ + }else{ + if( (tcplen=tcp.validate())==OP_FAILURE){ + return CLIENT_NOT_FOUND; +- }else{ ++ }else{ + if( (int)pktlen > (iplen+tcplen) ){ + if( payload.storeRecvData(pkt+iplen+tcplen, pktlen-iplen-tcplen)!=OP_FAILURE) + payload_included=true; diff --git a/meta-oe/recipes-security/nmap/nmap_7.70.bb b/meta-oe/recipes-security/nmap/nmap_7.70.bb index 01be1515b7..b28b6a2528 100644 --- a/meta-oe/recipes-security/nmap/nmap_7.70.bb +++ b/meta-oe/recipes-security/nmap/nmap_7.70.bb @@ -8,7 +8,9 @@ LIC_FILES_CHKSUM = "file://COPYING;beginline=7;endline=12;md5=1489288f46af415fad SRC_URI = "http://nmap.org/dist/${BP}.tar.bz2 \ file://nmap-redefine-the-python-library-dir.patch \ file://nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch \ -" + file://0001-include-time.h-for-time-structure-definition.patch \ + file://0002-Fix-building-with-libc.patch \ + " SRC_URI[md5sum] = "84eb6fbe788e0d4918c2b1e39421bf79" SRC_URI[sha256sum] = "847b068955f792f4cc247593aca6dc3dc4aae12976169873247488de147a6e18" -- cgit 1.2.3-korg