Return to BSD News archive
Path: sserve!manuel.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!olivea!uunet!emba-news.uvm.edu!sadye.emba.uvm.edu!wollman
From: wollman@sadye.emba.uvm.edu (Garrett Wollman)
Newsgroups: comp.os.386bsd.bugs
Subject: syslog()/vsyslog() bug
Message-ID: <1993Mar1.212610.14687@uvm.edu>
Date: 1 Mar 93 21:26:10 GMT
Sender: news@uvm.edu
Organization: University of Vermont, EMBA Computer Facility
Lines: 47
According to the syslog(3) manual page, the first argument to the
syslog() and vsyslog() functions is a priority:
The message is tagged with priority. Priorities are encoded as a facility
and a level. The facility describes the part of the system generating the
message. The level is selected from the following ordered (high to low)
list:
However, the code in /usr/src/lib/libc/gen/syslog.c sometimes doesn't
expect to be passed a facility in this argument as is done by, e.g.,
`logger'. The following patch corrects the error. It does not
attempt to fix other questionable code which nonetheless still works,
such as use of sprintf() and vsprintf() where snprintf()/vsnprintf()
would be preferred.
Note the reason why this error wasn't more noticeable is that most
programs set the facility during the openlog() call, and pass only a
level to syslog().
*** /usr/src/lib/libc/gen/syslog.c Wed Jun 26 21:53:08 1991
--- syslog.c Mon Mar 1 14:53:17 1993
***************
*** 99,105 ****
/* check for invalid bits or no priority set */
if (!LOG_PRI(pri) || (pri &~ (LOG_PRIMASK|LOG_FACMASK)) ||
! !(LOG_MASK(pri) & LogMask))
return;
saved_errno = errno;
--- 99,105 ----
/* check for invalid bits or no priority set */
if (!LOG_PRI(pri) || (pri &~ (LOG_PRIMASK|LOG_FACMASK)) ||
! !(LOG_MASK(LOG_PRI(pri)) & LogMask))
return;
saved_errno = errno;
-GAWollman
--
Garrett A. Wollman | Shashish is simple, it's discreet, it's brief. ...
wollman@emba.uvm.edu | Shashish is the bonding of hearts in spite of distance.
uvm-gen!wollman | It is a bond more powerful than absence. We like people
UVM disagrees. | who like Shashish. - Claude McKenzie + Florent Vollant