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