Skip site navigation (1)Skip section navigation (2)
Date:      20 Apr 1998 23:15:06 -0000
From:      "Soren S. Jorvang" <soren@t.dk>
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Cc:        ncbp@int.tele.dk, jesper@skriver.dk
Subject:   bin/6366: syslogd creates AF_INET socket even with -s
Message-ID:  <19980420231506.21888.qmail@freesbee.t.dk>

next in thread | raw e-mail | index | archive | help

>Number:         6366
>Category:       bin
>Synopsis:       syslogd creates AF_INET socket even with -s
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Apr 20 16:20:09 PDT 1998
>Last-Modified:
>Originator:     Soren S. Jorvang
>Organization:
Flaf
>Release:        FreeBSD 2.2.6-STABLE i386
>Environment:
Very recent 2.2.6-stable. The same bug is in todays -current.


>Description:
Even with '-s', syslogd still creates an AF_INET socket, although
it is not bind(2)ed.


>How-To-Repeat:
Run 'syslogd -s'. Observe the following line from 'netstat -an'.
tcp        0      0  *.*                   *.*                    LISTEN


>Fix:
--- src/usr.sbin/syslogd.c.orig	Tue Apr 21 00:26:56 1998
+++ src/usr.sbin/syslogd.c	Tue Apr 21 00:30:22 1998
@@ -366,28 +366,27 @@
 		created_lsock = 1;
 
 	inetm = 0;
-	finet = socket(AF_INET, SOCK_DGRAM, 0);
-	if (finet >= 0) {
-		struct servent *sp;
+	if (!SecureMode) {
+		finet = socket(AF_INET, SOCK_DGRAM, 0);
+		if (finet >= 0) {
+			struct servent *sp;
 
-		sp = getservbyname("syslog", "udp");
-		if (sp == NULL) {
-			errno = 0;
-			logerror("syslog/udp: unknown service");
-			die(0);
-		}
-		memset(&sin, 0, sizeof(sin));
-		sin.sin_family = AF_INET;
-		sin.sin_port = LogPort = sp->s_port;
+			sp = getservbyname("syslog", "udp");
+			if (sp == NULL) {
+				errno = 0;
+				logerror("syslog/udp: unknown service");
+				die(0);
+			}
+			memset(&sin, 0, sizeof(sin));
+			sin.sin_family = AF_INET;
+			sin.sin_port = LogPort = sp->s_port;
 
-		if (!SecureMode) {
-		    if (bind(finet, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
-			    logerror("bind");
-			    if (!Debug)
-				    die(0);
-		    } else {
-			    inetm = FDMASK(finet);
-		    }
+			if (bind(finet, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
+				logerror("bind");
+				if (!Debug)
+					die(0);
+				inetm = FDMASK(finet);
+			}
 		}
 	}
 	if ((fklog = open(_PATH_KLOG, O_RDONLY, 0)) >= 0)

>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?19980420231506.21888.qmail>