From owner-freebsd-ports-bugs@FreeBSD.ORG Thu Apr 16 13:20:04 2009 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 667801065673 for ; Thu, 16 Apr 2009 13:20:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 3F78C8FC18; Thu, 16 Apr 2009 13:20:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n3GDK4E8004228; Thu, 16 Apr 2009 13:20:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n3GDK4EG004227; Thu, 16 Apr 2009 13:20:04 GMT (envelope-from gnats) Resent-Date: Thu, 16 Apr 2009 13:20:04 GMT Resent-Message-Id: <200904161320.n3GDK4EG004227@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Cc: daniel@roe.ch Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Daniel Roethlisberger Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2B9E01065675 for ; Thu, 16 Apr 2009 13:12:46 +0000 (UTC) (envelope-from daniel+roe=marvin@roe.ch) Received: from calvin.ustdmz.roe.ch (calvin.ustdmz.roe.ch [IPv6:2001:41e0:ff17:face::26]) by mx1.freebsd.org (Postfix) with ESMTP id 19EE68FC0C for ; Thu, 16 Apr 2009 13:12:45 +0000 (UTC) (envelope-from daniel+roe=marvin@roe.ch) Received: from host-178-185.csnc.ch ([212.254.178.185] helo=marvin.ustcor.roe.ch) by calvin.ustdmz.roe.ch (envelope-from ) with ESMTPSA (auth=roe) (TLSv1:AES256-SHA:256) id 1LuQjZ-000OCO-TD for FreeBSD-gnats-submit@freebsd.org; Thu, 16 Apr 2009 14:30:26 +0200 Received: from roe (uid 1001) (envelope-from roe@marvin.ustcor.roe.ch) id 45 by marvin.ustcor.roe.ch (DragonFly Mail Agent) Thu, 16 Apr 2009 14:30:26 +0200 Message-Id: Date: Thu, 16 Apr 2009 14:30:26 +0200 From: Daniel Roethlisberger To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 X-GNATS-Notify: daniel@roe.ch Cc: daniel@roe.ch Subject: ports/133779: [maintainer] security/nmap - fix ncat host resolver X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Roethlisberger List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Apr 2009 13:20:04 -0000 >Number: 133779 >Category: ports >Synopsis: [maintainer] security/nmap - fix ncat host resolver >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Thu Apr 16 13:20:03 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Daniel Roethlisberger >Release: FreeBSD 7.1-RELEASE-p4 i386 >Organization: >Environment: System: FreeBSD marvin.ustcor.roe.ch 7.1-RELEASE-p4 FreeBSD 7.1-RELEASE-p4 #0: Sun Mar 22 12:35:36 UTC 2009 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386 >Description: Ncat uses getaddrinfo(3) to resolve hostnames and always passes it a numerical service string. FreeBSD getaddrinfo(3) until recently was broken with numerical service strings (see PR bin/51827). This patch adds a workaround for FreeBSD versions with broken getaddrinfo(3), fixing Ncat where it is currently unable to resolve any hostnames. svn add files/patch-ncat__ncat_core.c >How-To-Repeat: ncat -v localhost 80 >Fix: --- nmap-ncat-fix.diff begins here --- diff -ruN nmap.orig/Makefile nmap/Makefile --- nmap.orig/Makefile 2009-04-13 11:53:53.000000000 +0200 +++ nmap/Makefile 2009-04-16 13:33:54.000000000 +0200 @@ -7,6 +7,7 @@ PORTNAME= nmap DISTVERSION= 4.85BETA7 +PORTREVISION= 1 CATEGORIES= security ipv6 MASTER_SITES= http://nmap.org/dist/ \ http://www.mirrors.wiretapped.net/security/network-mapping/nmap/ \ diff -ruN nmap.orig/files/patch-ncat__ncat_core.c nmap/files/patch-ncat__ncat_core.c --- nmap.orig/files/patch-ncat__ncat_core.c 1970-01-01 01:00:00.000000000 +0100 +++ nmap/files/patch-ncat__ncat_core.c 2009-04-16 14:12:56.000000000 +0200 @@ -0,0 +1,33 @@ +--- ncat/ncat_core.c.orig 2009-04-02 04:57:42.000000000 +0200 ++++ ncat/ncat_core.c 2009-04-16 14:12:39.000000000 +0200 +@@ -11,6 +11,7 @@ + #include + #include + #endif ++#include + #include + #include + #include +@@ -96,13 +97,22 @@ + rc = Snprintf(portbuf, sizeof(portbuf), "%hu", port); + assert(rc >= 0 && rc < sizeof(portbuf)); + ++#if (defined(__FreeBSD_version) && (__FreeBSD_version < 800075) \ ++ && ((__FreeBSD_version > 800000) || (__FreeBSD_version < 702000))) ++ rc = getaddrinfo(hostname, "domain", &hints, &result); ++#else + rc = getaddrinfo(hostname, portbuf, &hints, &result); ++#endif + if (rc != 0 || result == NULL) + return 0; + assert(result->ai_addrlen > 0 && result->ai_addrlen <= (int) sizeof(struct sockaddr_storage)); + *sslen = result->ai_addrlen; + memcpy(ss, result->ai_addr, *sslen); + freeaddrinfo(result); ++#if (defined(__FreeBSD_version) && (__FreeBSD_version < 800075) \ ++ && ((__FreeBSD_version > 800000) || (__FreeBSD_version < 702000))) ++ ((struct sockaddr_in *)ss)->sin_port = htons(port); ++#endif + return 1; + } + --- nmap-ncat-fix.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: