From owner-freebsd-bugs Thu Feb 17 10: 0: 5 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 5215F37B859 for ; Thu, 17 Feb 2000 10:00:02 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id KAA44014; Thu, 17 Feb 2000 10:00:02 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from scientia.demon.co.uk (scientia.demon.co.uk [212.228.14.13]) by hub.freebsd.org (Postfix) with ESMTP id F075337B6F8 for ; Thu, 17 Feb 2000 09:56:18 -0800 (PST) (envelope-from ben@scientia.demon.co.uk) Received: from platinum.scientia.demon.co.uk ([192.168.91.38] ident=exim) by scientia.demon.co.uk with esmtp (Exim 3.12 #1) id 12LUWR-000NCf-00 for FreeBSD-gnats-submit@freebsd.org; Thu, 17 Feb 2000 17:15:23 +0000 Received: (from ben) by platinum.scientia.demon.co.uk (Exim 3.12 #7) id 12LUWR-0001dk-00 for FreeBSD-gnats-submit@freebsd.org; Thu, 17 Feb 2000 17:15:23 +0000 Message-Id: Date: Thu, 17 Feb 2000 17:15:23 +0000 From: Ben Smithurst Reply-To: ben@scientia.demon.co.uk To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: bin/16789: fingerd logging not IPv6 aware Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 16789 >Category: bin >Synopsis: fingerd logging not IPv6 aware >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Feb 17 10:00:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Ben Smithurst >Release: FreeBSD 4.0-CURRENT i386 >Organization: >Environment: >Description: fingerd's -l option is not IPv6 aware, which can cause problems attempting to obtain the hostname for an IPv6 connection. >How-To-Repeat: change "tcp" to "tcp46" on the "finger" line in /etc/inetd.conf, add fingerd's -l option, and connect to the finger service via an IPv6 address. >Fix: simple patch, may not be perfect: diff -ur fingerd.orig/fingerd.c fingerd/fingerd.c --- fingerd.orig/fingerd.c Sat Aug 28 01:09:28 1999 +++ fingerd/fingerd.c Thu Feb 17 17:07:26 2000 @@ -70,7 +70,7 @@ register FILE *fp; register int ch; register char *lp; - struct sockaddr_in sin; + struct sockaddr_storage sin; int p[2], logging, secure, sval; #define ENTRIES 50 char **ap, *av[ENTRIES + 1], **comp, line[1024], *prog; @@ -130,7 +130,8 @@ sval = sizeof(sin); if (getpeername(0, (struct sockaddr *)&sin, &sval) < 0) logerr("getpeername: %s", strerror(errno)); - realhostname(rhost, sizeof rhost - 1, &sin.sin_addr); + realhostname_sa(rhost, sizeof rhost - 1, + (struct sockaddr *)&sin, sval); rhost[sizeof(rhost) - 1] = '\0'; syslog(LOG_NOTICE, "query from %s: `%s'", rhost, t); } >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message