From owner-freebsd-bugs Mon Nov 12 20: 0:18 2001 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id C732437B41E for ; Mon, 12 Nov 2001 20:00:00 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.4/8.11.4) id fAD400B35350; Mon, 12 Nov 2001 20:00:00 -0800 (PST) (envelope-from gnats) Received: from topaz.mdcc.cx (topaz.mdcc.cx [212.204.230.141]) by hub.freebsd.org (Postfix) with ESMTP id E189D37B405 for ; Mon, 12 Nov 2001 19:57:38 -0800 (PST) Received: from k7.mavetju.org (topaz.mdcc.cx [212.204.230.141]) by topaz.mdcc.cx (Postfix) with ESMTP id AD5DE2B771; Tue, 13 Nov 2001 04:57:34 +0100 (CET) Received: by k7.mavetju.org (Postfix, from userid 1001) id C420B13D; Tue, 13 Nov 2001 14:57:29 +1100 (EST) Message-Id: <20011113035729.C420B13D@k7.mavetju.org> Date: Tue, 13 Nov 2001 14:57:29 +1100 (EST) From: Edwin Groothuis Reply-To: Edwin Groothuis To: FreeBSD-gnats-submit@freebsd.org Cc: "Aaron Scarisbrick" X-Send-Pr-Version: 3.113 Subject: bin/31947: [PATCH] syslogd -a 0.0.0.0/0 behaves incorrect Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 31947 >Category: bin >Synopsis: [PATCH] syslogd -a 0.0.0.0/0 behaves incorrect >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: Mon Nov 12 20:00:00 PST 2001 >Closed-Date: >Last-Modified: >Originator: Edwin Groothuis >Release: FreeBSD 4.4-RELEASE i386 >Organization: - >Environment: System: FreeBSD k7.mavetju.org 4.4-RELEASE FreeBSD 4.4-RELEASE #2: Sat Nov 10 21:31:47 EST 2001 edwin@k7.mavetju.org:/usr/src/sys/compile/k7 i386 $FreeBSD: src/usr.sbin/syslogd/syslogd.c,v 1.59.2.9 2001/07/26 18:17:59 ume Exp $ and $FreeBSD: src/usr.sbin/syslogd/syslogd.c,v 1.91 2001/09/30 16:09:17 des Exp $ >Description: The behaviour of syslogd when specifieng 0.0.0.0/0 is incorrect. >How-To-Repeat: [/usr/src/usr.sbin/syslogd] edwin@k7>./syslogd -d -a 0.0.0.0/0 gives: allowaddr: rule 0: numeric, addr = 0.0.0.0, mask = 255.255.255.255; port = 514 this should be: [/usr/src/usr.sbin/syslogd] edwin@k7>./syslogd -d -a 0.0.0.0/0 allowaddr: rule 0: numeric, addr = 0.0.0.0, mask = 0.0.0.0; port = 514 >Fix: thanks to Aaron Scarisbrick for his 4.2 fix. For in the 4.4 release: --- ../syslogd-4.4/syslogd.c Tue Nov 13 14:27:50 2001 +++ syslogd.c Tue Nov 13 14:30:31 2001 @@ -1884,7 +1884,10 @@ maskp->s_addr = htonl(IN_CLASSC_NET); } else if (masklen <= 32) { /* convert masklen to netmask */ - maskp->s_addr = htonl(~((1 << (32 - masklen)) - 1)); + if (masklen == 0) + maskp->s_addr = 0; + else + maskp->s_addr = htonl(~((1 << (32 - masklen)) - 1)); } else { freeaddrinfo(res); return -1; For -current: --- syslogd.c.orig Tue Nov 13 14:43:18 2001 +++ syslogd.c Tue Nov 13 14:53:37 2001 @@ -1988,7 +1988,10 @@ maskp->s_addr = htonl(IN_CLASSC_NET); } else if (masklen <= 32) { /* convert masklen to netmask */ - maskp->s_addr = htonl(~((1 << (32 - masklen)) - 1)); + if (masklen == 0) + maskp->s_addr = 0; + else + maskp->s_addr = htonl(~((1 << (32 - masklen)) - 1)); } else { freeaddrinfo(res); return -1; Please note that the version -current isn't tested by me. >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message