posix has resolved to add this usage; for now, we just avoid writing anything to the new locale object since it's not used anyway.
@@ -6,6 +6,6 @@ locale_t duplocale(locale_t old)
{
locale_t new;
new = calloc(1, sizeof *new);
- if (new) memcpy(new, old, sizeof *new);
+ if (new && old != LC_GLOBAL_LOCALE) memcpy(new, old, sizeof *new);
return new;
}