diff options
Diffstat (limited to 'src/locale/setlocale.c')
-rw-r--r-- | src/locale/setlocale.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/locale/setlocale.c b/src/locale/setlocale.c index 86c44a5f..22779792 100644 --- a/src/locale/setlocale.c +++ b/src/locale/setlocale.c @@ -72,9 +72,14 @@ char * setlocale(int category, const char *locale) name_to_return = __load_locale(l, mask, locale); } - __readonly(RO_UNLOCK, retname); - strcpy(retname, name_to_return); - __readonly(RO_LOCK, retname); + if (name_to_return != NULL) { + __readonly(RO_UNLOCK, retname); + strcpy(retname, name_to_return); + __readonly(RO_LOCK, retname); + } else { + retname = NULL; + } + return retname; } |