make getpeername() return the original socket address which before it was intercepted
[hband-tools.git] / lib / libmallocab / libmallocab.c
blobb92b6a309e781d216e26f54ef30ede19dad0d536
2 #include <malloc.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #include <err.h>
7 /*
8 This lib implements the "aborting" versions of
9 - malloc
10 - realloc
11 - strdup
12 - strndup
13 The program gets abort()ed if they can not allocate enough memory.
14 Thus the caller don't need to pay attention to returning NULL pointers.
15 See abort(3).
18 void* mallocab(size_t size)
20 void* ptr;
21 ptr = malloc(size);
22 if(size != 0 && ptr == NULL)
24 warnx("Failed to allocate %d bytes of memory.", size);
25 abort();
27 return ptr;
30 void* reallocab(void* ptr0, size_t size)
32 void* ptr;
33 ptr = realloc(ptr0, size);
34 if(size != 0 && ptr == NULL)
36 warnx("Failed to reallocate %d bytes of memory.", size);
37 abort();
39 return ptr;
42 char* strdupab(const char* ptr0)
44 char* ptr;
45 ptr = strdup(ptr0);
46 if(ptr == NULL)
48 warnx("Failed to duplicate %p.", ptr0);
49 abort();
51 return ptr;
54 char* strndupab(const char* ptr0, size_t size)
56 char* ptr;
57 ptr = strndup(ptr0, size);
58 if(ptr == NULL)
60 warnx("Failed to duplicate %d bytes from %p.", size, ptr0);
61 abort();
63 return ptr;