Line continuations in default syslog.conf not parsed correctly

Bug #572447 reported by Paul Donohue
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
sysklogd (Ubuntu)
New
Undecided
Unassigned

Bug Description

Binary package hint: sysklogd

I updated my machine from Karmic to Lucid yesterday, and since rebooting after the upgrade, I have been getting "unknown priority name" errors when starting syslogd, and have not seen any output to /var/log/debug or /var/log/messages. I'm using an unmodified version of syslog.conf.

It looks like syslogd is corrupting continued lines (lines ending with '\') when reading them from syslog.conf. Removing the line continuations seems to fix the problem. Given that syslogd has not changed since Karmic, I'm guessing one of the underlying libraries has changed and broken it?

I'm attaching the stock syslog.conf with the output of 'syslogd -d' (broken), as well as a syslog.conf without any continued lines and the output of 'syslogd -d' (working). Notice (in the broken version of the debug output) that when cfline() is called, the input line is corrupted (has some missing characters, and some duplicated characters) if the corresponding lines in syslog.conf contained continuations.

Revision history for this message
Paul Donohue (s-launchpad-paulsd-com) wrote :
Revision history for this message
Paul Donohue (s-launchpad-paulsd-com) wrote :
Revision history for this message
Paul Donohue (s-launchpad-paulsd-com) wrote :
Revision history for this message
Paul Donohue (s-launchpad-paulsd-com) wrote :
summary: - syslog.conf not parsed correctly since upgrade to lucid
+ syslog.conf not parsed correctly
Revision history for this message
Paul Donohue (s-launchpad-paulsd-com) wrote : Re: syslog.conf not parsed correctly

Problem is still present in current Maverick release candidate.

Since sysklogd didn't change between Karmic and Lucid, I assume this is caused by a change in some underlying library.

summary: - syslog.conf not parsed correctly
+ Line continuations in default syslog.conf not parsed correctly
Revision history for this message
Paul Donohue (s-launchpad-paulsd-com) wrote :

Looks like this is caused by the addition of SSE-instruction acceleration of strcpy() on AMD64 in libc6.
syslogd was using strcpy() to shift a string forward (to eliminate leading whitespace), but this is not allowed per the ANSI standard. By chance, the old libc6 worked fine, but the new accelerated libc6 does not.

It has been fixed in Debian, but the fix didn't make it into Maverick.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586156

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.