123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #include <stdlib.h>
- #include <unistd.h>
- #include <malloc.h>
- void (*__uc_malloc_failed)(size_t size) = NULL;
- libc_hidden_data_def(__uc_malloc_failed)
- void *__uc_malloc(size_t size)
- {
- void *p;
- while (1) {
- p = malloc(size);
- if (!size || p)
- return p;
- if (!__uc_malloc_failed)
- _exit(1);
- free(p);
- __uc_malloc_failed(size);
- }
- }
- libc_hidden_def(__uc_malloc)
|