mirror of git://git.musl-libc.org/musl
fix invalid free of duplocale object when malloc has been replaced
newlocale and freelocale use __libc_malloc and __libc_free, but
duplocale used malloc. If malloc was replaced, this resulted in
invalid free using the wrong allocator when passing the result of
duplocale to freelocale.
Instead, use libc-internal malloc for duplocale.
This bug was introduced by commit
1e4204d522
.
This commit is contained in:
parent
760f5d7efe
commit
6d8a515796
|
@ -3,6 +3,11 @@
|
|||
#include "locale_impl.h"
|
||||
#include "libc.h"
|
||||
|
||||
#define malloc __libc_malloc
|
||||
#define calloc undef
|
||||
#define realloc undef
|
||||
#define free undef
|
||||
|
||||
locale_t __duplocale(locale_t old)
|
||||
{
|
||||
locale_t new = malloc(sizeof *new);
|
||||
|
|
Loading…
Reference in New Issue