From edwin@mavetju.org  Mon Nov 12 19:57:39 2001
Return-Path: <edwin@mavetju.org>
Received: from topaz.mdcc.cx (topaz.mdcc.cx [212.204.230.141])
	by hub.freebsd.org (Postfix) with ESMTP id E189D37B405
	for <FreeBSD-gnats-submit@freebsd.org>; 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 <edwin@mavetju.org>
Reply-To: Edwin Groothuis <edwin@mavetju.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc: "Aaron Scarisbrick" <aaronsca@hotmail.com>
Subject: [PATCH] syslogd -a 0.0.0.0/0 behaves incorrect
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>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:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Nov 12 20:00:00 PST 2001
>Closed-Date:    Wed Nov 14 01:20:39 PST 2001
>Last-Modified:  Wed Nov 14 01:20:59 PST 2001
>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:
State-Changed-From-To: open->closed 
State-Changed-By: ps 
State-Changed-When: Wed Nov 14 01:20:39 PST 2001 
State-Changed-Why:  
committed to -current 

http://www.FreeBSD.org/cgi/query-pr.cgi?pr=31947 
>Unformatted:
