summary refs log tree commit diff
path: root/locale/setlocale.c
diff options
context:
space:
mode:
Diffstat (limited to 'locale/setlocale.c')
-rw-r--r--locale/setlocale.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/locale/setlocale.c b/locale/setlocale.c
index bdc65f523e..79f15ccb40 100644
--- a/locale/setlocale.c
+++ b/locale/setlocale.c
@@ -361,7 +361,7 @@ setlocale (int category, const char *locale)
   else
     {
       struct locale_data *newdata = NULL;
-      const char *newname = locale;
+      const char *newname[1] = { locale };
 
       /* Protect global data.  */
       __libc_lock_lock (__libc_setlocale_lock);
@@ -370,7 +370,7 @@ setlocale (int category, const char *locale)
 	{
 	  /* Only actually load the data if anything will use it.  */
 	  newdata = _nl_find_locale (locale_path, locale_path_len, category,
-				     &newname);
+				     &newname[0]);
 	  if (newdata == NULL)
 	    goto abort_single;
 
@@ -381,19 +381,19 @@ setlocale (int category, const char *locale)
 	}
 
       /* Create new composite name.  */
-      composite = new_composite_name (category, &newname);
+      composite = new_composite_name (category, newname);
       if (composite == NULL)
 	{
 	  /* Say that we don't have any data loaded.  */
 	abort_single:
-	  newname = NULL;
+	  newname[0] = NULL;
 	}
       else
 	{
 	  if (_nl_current[category] != NULL)
 	    setdata (category, newdata);
 
-	  setname (category, newname);
+	  setname (category, newname[0]);
 	  setname (LC_ALL, composite);
 	}
 
@@ -403,6 +403,6 @@ setlocale (int category, const char *locale)
       /* Free the resources (the locale path variable.  */
       free (locale_path);
 
-      return (char *) newname;
+      return (char *) newname[0];
     }
 }