summaryrefslogtreecommitdiff
path: root/src/locale/setlocale.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/locale/setlocale.c')
-rw-r--r--src/locale/setlocale.c11
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;
}