fix malloc_usable_size for NULL input
[musl] / src / malloc / malloc_usable_size.c
1 #include <malloc.h>
2
3 void *(*const __realloc_dep)(void *, size_t) = realloc;
4
5 struct chunk {
6         size_t psize, csize;
7         struct chunk *next, *prev;
8 };
9
10 #define OVERHEAD (2*sizeof(size_t))
11 #define CHUNK_SIZE(c) ((c)->csize & -2)
12 #define MEM_TO_CHUNK(p) (struct chunk *)((char *)(p) - OVERHEAD)
13
14 size_t malloc_usable_size(void *p)
15 {
16         return p ? CHUNK_SIZE(MEM_TO_CHUNK(p)) - OVERHEAD : 0;
17 }