summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorcjc <cjc@FreeBSD.org>2001-07-02 15:26:47 +0000
committercjc <cjc@FreeBSD.org>2001-07-02 15:26:47 +0000
commitfd2fcd17ee2995f9eec606ef9b918fe0e766545f (patch)
tree6c257da0031d55cd0ae5ed7d2932bd6d7cb37f03 /usr.sbin
parent460cef587ed049166cb98eafe2e9e0fbd0f59ea1 (diff)
downloadFreeBSD-src-fd2fcd17ee2995f9eec606ef9b918fe0e766545f.zip
FreeBSD-src-fd2fcd17ee2995f9eec606ef9b918fe0e766545f.tar.gz
Lose any stray host bits that a user may have entered when providing
a network number and netmask to the '-a' option. Approved by: ru MFC after: 1 week
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/syslogd/syslogd.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c
index c66550c..dc6a7ec 100644
--- a/usr.sbin/syslogd/syslogd.c
+++ b/usr.sbin/syslogd/syslogd.c
@@ -1873,9 +1873,9 @@ allowaddr(s)
if (res->ai_family == AF_INET) {
ap.a_mask.ss_len = sizeof(struct sockaddr_in);
maskp = &((struct sockaddr_in *)&ap.a_mask)->sin_addr;
+ addrp = &((struct sockaddr_in *)&ap.a_addr)->sin_addr;
if (masklen < 0) {
/* use default netmask */
- addrp = &((struct sockaddr_in *)&ap.a_addr)->sin_addr;
if (IN_CLASSA(ntohl(addrp->s_addr)))
maskp->s_addr = htonl(IN_CLASSA_NET);
else if (IN_CLASSB(ntohl(addrp->s_addr)))
@@ -1889,6 +1889,8 @@ allowaddr(s)
freeaddrinfo(res);
return -1;
}
+ /* Lose any host bits in the network number. */
+ addrp->s_addr &= maskp->s_addr;
}
#ifdef INET6
else if (res->ai_family == AF_INET6 && masklen <= 128) {
OpenPOWER on IntegriCloud