use libc-internal malloc for newlocale/freelocale

this is necessary for MT-fork correctness now that the code runs under
locale lock. it would not be hard to avoid, but __get_locale is
already using libc-internal malloc anyway. this can be reconsidered
during locale overhaul later if needed.
This commit is contained in:
Rich Felker 2020-12-09 17:11:05 -05:00
parent 36246b347c
commit 1e4204d522
2 changed files with 10 additions and 0 deletions

View File

@ -1,6 +1,11 @@
#include <stdlib.h>
#include "locale_impl.h"
#define malloc undef
#define calloc undef
#define realloc undef
#define free __libc_free
void freelocale(locale_t l)
{
if (__loc_is_allocated(l)) free(l);

View File

@ -4,6 +4,11 @@
#include "locale_impl.h"
#include "lock.h"
#define malloc __libc_malloc
#define calloc undef
#define realloc undef
#define free undef
static int default_locale_init_done;
static struct __locale_struct default_locale, default_ctype_locale;