Date: Tue, 13 Nov 2001 14:57:29 +1100 (EST) From: Edwin Groothuis <edwin@mavetju.org> To: FreeBSD-gnats-submit@freebsd.org Cc: "Aaron Scarisbrick" <aaronsca@hotmail.com> Subject: bin/31947: [PATCH] syslogd -a 0.0.0.0/0 behaves incorrect Message-ID: <20011113035729.C420B13D@k7.mavetju.org>
next in thread | raw e-mail | index | archive | help
>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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011113035729.C420B13D>
