summaryrefslogtreecommitdiff
path: root/compat/realloc.c
blob: bdaf76d0268ff8f6fc34b127df741aa37bc99477 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* Just a replacement, if the original malloc is not
   GNU-compliant. Based on malloc.c */

#if HAVE_CONFIG_H
#include <ldns/config.h>
#endif
#undef realloc

#include <sys/types.h>

void *realloc (void*, size_t);
void *malloc (size_t);

/* Changes allocation to new sizes, copies over old data.
 * if oldptr is NULL, does a malloc.
 * if size is zero, allocate 1-byte block....
 *   (does not return NULL and free block)
 */

void *
rpl_realloc (void* ptr, size_t n)
{
  if (n == 0)
    n = 1;
  if(ptr == 0) {
    return malloc(n);
  }
  return realloc(ptr, n);
}