CVSROOT:        /cvs
Module name:    src
Changes by:     matt...@cvs.openbsd.org 2012/06/26 08:53:23

Modified files:
        lib/libc/stdio : vfprintf.c vfwprintf.c 

Log message:
Use nl_langinfo(RADIXCHAR) instead of localeconv()->decimal_point in
printf() and avoid calling it unless needed (i.e., when we have a
floating point value to print).  This isn't a big concern currently
due to our limited locale support and current localeconv()
implementation, but it's still technically a data race and
implementing POSIX 2008 per-thread locales is likely to make it worse.

nl_langinfo() isn't guaranteed by POSIX to be thread-safe either, but
at least our current implementation is thread-safe and it's a simpler
interface to keep that way.  Printing floating point values isn't
async-signal-safe anyway due to gdtoa()'s use of malloc(), so that's
not an issue.

ok deraadt, stsp, millert

Reply via email to