NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

lib/47055: libc diagassert issues



>Number:         47055
>Category:       lib
>Synopsis:       libc diagassert issues
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    lib-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Oct 10 19:45:00 +0000 2012
>Originator:     David A. Holland
>Release:        NetBSD 6.99.12 (20121010)
>Organization:
>Environment:
n/a
>Description:

There are two problems with libc diagassert:

(1) it calls syslog() blindly, so if an assertion happens in a program
that hasn't called openlog(), it ends up using uninitialized state in
syslog.c. The observable effect of this seems to be to issue syslog
messages with no hostname field; however, it could be (or become,
without much notice) a good deal worse.

(2) it isn't thread-safe. It frob a global variable (diagassert_flags)
without locking. It also should probably be using syslog_r() rather
than syslog().

>How-To-Repeat:

Build kde4, look at the resulting syslog spam. Then review the code.

>Fix:

Probably needs discussion.



Home | Main Index | Thread Index | Old Index