Switch to the C locale before sending messages to syslog. The messages
sent by shadow were not translated, but error messages from PAM returned by pam_strerror() were translated in the users's locale.
This commit is contained in:
parent
4e01ea6c33
commit
6e9078f16c
@ -1,3 +1,10 @@
|
||||
2008-02-03 Nicolas François <nicolas.francois@centraliens.net>
|
||||
|
||||
* NEWS, lib/defines.h: Switch to the C locale before sending
|
||||
messages to syslog. The messages sent by shadow were not
|
||||
translated, but error messages from PAM returned by pam_strerror()
|
||||
were translated in the users's locale.
|
||||
|
||||
2008-02-03 Nicolas François <nicolas.francois@centraliens.net>
|
||||
|
||||
* NEWS: newusers will behave more like useradd.
|
||||
|
3
NEWS
3
NEWS
@ -9,6 +9,9 @@ shadow-4.1.0 -> shadow-4.1.1 UNRELEASED
|
||||
generated in the same second.
|
||||
- packaging
|
||||
* Do not install the shadow library per default.
|
||||
- general
|
||||
* Do not translate the messages sent to syslog. This avoids logging
|
||||
PAM error messages in the users's locale.
|
||||
- chage
|
||||
* Fix bug which forbid to set the aging information of an account with a
|
||||
passwd entry, but no shadow entry.
|
||||
|
@ -142,13 +142,15 @@ char *strchr (), *strrchr (), *strtok ();
|
||||
syslogd should log the current system time for each event, and not
|
||||
trust the formatted time received from the unix domain (or worse,
|
||||
UDP) socket. -MM */
|
||||
/* Avoid translated PAM error messages: Set LC_ALL to "C".
|
||||
* --Nekral */
|
||||
#define SYSLOG(x) \
|
||||
do { \
|
||||
char *saved_locale = setlocale(LC_ALL, NULL); \
|
||||
if (saved_locale) \
|
||||
saved_locale = strdup(saved_locale); \
|
||||
if (saved_locale) \
|
||||
setlocale(LC_TIME, "C"); \
|
||||
setlocale(LC_ALL, "C"); \
|
||||
syslog x ; \
|
||||
if (saved_locale) { \
|
||||
setlocale(LC_ALL, saved_locale); \
|
||||
|
Loading…
Reference in New Issue
Block a user