xref: /freebsd/contrib/ldns/compat/realloc.c (revision cfe30d02adda7c3b5c76156ac52d50d8cab325d9)
1*7b5038d7SDag-Erling Smørgrav /* Just a replacement, if the original malloc is not
2*7b5038d7SDag-Erling Smørgrav    GNU-compliant. Based on malloc.c */
3*7b5038d7SDag-Erling Smørgrav 
4*7b5038d7SDag-Erling Smørgrav #if HAVE_CONFIG_H
5*7b5038d7SDag-Erling Smørgrav #include <ldns/config.h>
6*7b5038d7SDag-Erling Smørgrav #endif
7*7b5038d7SDag-Erling Smørgrav #undef realloc
8*7b5038d7SDag-Erling Smørgrav 
9*7b5038d7SDag-Erling Smørgrav #include <sys/types.h>
10*7b5038d7SDag-Erling Smørgrav 
11*7b5038d7SDag-Erling Smørgrav void *realloc (void*, size_t);
12*7b5038d7SDag-Erling Smørgrav void *malloc (size_t);
13*7b5038d7SDag-Erling Smørgrav 
14*7b5038d7SDag-Erling Smørgrav /* Changes allocation to new sizes, copies over old data.
15*7b5038d7SDag-Erling Smørgrav  * if oldptr is NULL, does a malloc.
16*7b5038d7SDag-Erling Smørgrav  * if size is zero, allocate 1-byte block....
17*7b5038d7SDag-Erling Smørgrav  *   (does not return NULL and free block)
18*7b5038d7SDag-Erling Smørgrav  */
19*7b5038d7SDag-Erling Smørgrav 
20*7b5038d7SDag-Erling Smørgrav void *
rpl_realloc(void * ptr,size_t n)21*7b5038d7SDag-Erling Smørgrav rpl_realloc (void* ptr, size_t n)
22*7b5038d7SDag-Erling Smørgrav {
23*7b5038d7SDag-Erling Smørgrav   if (n == 0)
24*7b5038d7SDag-Erling Smørgrav     n = 1;
25*7b5038d7SDag-Erling Smørgrav   if(ptr == 0) {
26*7b5038d7SDag-Erling Smørgrav     return malloc(n);
27*7b5038d7SDag-Erling Smørgrav   }
28*7b5038d7SDag-Erling Smørgrav   return realloc(ptr, n);
29*7b5038d7SDag-Erling Smørgrav }
30*7b5038d7SDag-Erling Smørgrav 
31