Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Sep 2001 22:06:36 +0300
From:      Giorgos Keramidas <charon@labs.gr>
To:        Chris Wicklein <chrisw@Wicklein.ORG>
Cc:        current@FreeBSD.ORG
Subject:   Re: syslogd: Too many '/' in "/dev//console"
Message-ID:  <20010904220636.A23124@hades.hell.gr>
In-Reply-To: <20010904063933.A1625@hades.hell.gr>; from charon@labs.gr on Tue, Sep 04, 2001 at 06:39:36AM %2B0300
References:  <20010903204142.87BDC37B405@hub.freebsd.org> <20010904030913.EDD0037B407@hub.freebsd.org> <20010904063933.A1625@hades.hell.gr>

next in thread | previous in thread | raw e-mail | index | archive | help
From: Giorgos Keramidas <charon@labs.gr>
Subject: Re: syslogd: Too many '/' in "/dev//console"
Date: Tue, Sep 04, 2001 at 06:39:36AM +0300

> I'm looking at the diffs from Aug 25, so if I come up with sth by
> running syslogd with -d, by tomorrow I'll have spotted this in more
> detail - probably replying with the patch to fix it too.  Off to
> buildworld and bed, 'nite all.

Running "syslogd -d -s -s" and checking out my usr.sbin/syslogd
sources from various dates, I tracked this bug down to changes made
between Aug 31 2001 and Sep 1 2001.

In my /etc/syslog.conf I changed /dev/console to /dev/ttyvb so that
all messages are redirected to /dev/ttyvb (where I would easily spot
them, and do not clutter my active console).

Here's the output of two builds of syslogd with sources from the dates
mentioned:

    hades!root:[/usr/src/usr.sbin/syslogd]# cvs up -A -P -d -q -D 'Aug 31 2001'
    hades!root:[/usr/src/usr.sbin/syslogd]# make
    hades!root:[/usr/src/usr.sbin/syslogd]# make install
    hades!root:[/usr/src/usr.sbin/syslogd]# syslogd -d -s -s
    off & running....
    init
    cfline("*.*                                             /var/log/messages", f, "*", "*")
    cfline("*.*                                             /dev/ttyvb", f, "*", "*")
    8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 X FILE: /var/log/messages
    8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 X TTY: /dev/ttyvb
    logmsg: pri 56, flags 4, from hades, msg syslogd: restart
    Logging to FILE /var/log/messages
    Logging to TTY /dev/ttyvb
    syslogd: restarted
    ^Csyslogd: exiting on signal 2
    syslogd: exiting on signal 2
    logmsg: pri 53, flags 4, from hades, msg syslogd: exiting on signal 2
    Logging to FILE /var/log/messages
    Logging to TTY /dev/ttyvb

So, the sources of Aug 31 seem to run perfectly fine.  Trying the same
with the sources of Sep 1, I get the interesting output shown below:

    hades!root:[/usr/src/usr.sbin/syslogd]# cvs up -A -P -d -q -D 'Sep 1 2001'
    hades!root:[/usr/src/usr.sbin/syslogd]# make
    hades!root:[/usr/src/usr.sbin/syslogd]# make install
    hades!root:[/usr/src/usr.sbin/syslogd]# syslogd -d -s -s
    off & running....
    init
    cfline("*.*                                             /var/log/messages", f, "*", "*")
    cfline("*.*                                             /dev/ttyvb", f, "*", "*")
    8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 X FILE: /var/log/messages
    8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 X TTY: /dev//ttyvb
    logmsg: pri 56, flags 4, from hades, msg syslogd: restart
    Logging to FILE /var/log/messages
    Logging to TTY /dev//ttyvb
    syslogd: Too many '/' in "/dev//ttyvb"
    logmsg: pri 53, flags 4, from hades, msg syslogd: Too many '/' in "/dev//ttyvb"
    Logging to FILE /var/log/messages
    Logging to UNUSED
    syslogd: restarted

The following patch seems to have fixed the bug for me.

-giorgos

[-- start of patch --]
Index: syslogd.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/syslogd/syslogd.c,v
retrieving revision 1.84
diff -u -r1.84 syslogd.c
--- syslogd.c   1 Sep 2001 08:42:49 -0000       1.84
+++ syslogd.c   4 Sep 2001 19:04:25 -0000
@@ -1664,7 +1664,7 @@
                                f->f_type = F_CONSOLE;
                        else
                                f->f_type = F_TTY;
-                       (void)strlcpy(f->f_un.f_fname, p + sizeof(_PATH_DEV - 1),
+                       (void)strlcpy(f->f_un.f_fname, p + sizeof _PATH_DEV - 1,
                            sizeof(f->f_un.f_fname));
                } else {
                        (void)strlcpy(f->f_un.f_fname, p, sizeof(f->f_un.f_fname));
[-- end of patch --]

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010904220636.A23124>