]> git.ozlabs.org Git - ccan/blob - tools/_infotojson/utils.c
9f99972d490ae6eef1e23af904f07346bad9e4fe
[ccan] / tools / _infotojson / utils.c
1 #include "utils.h"
2 #include <stdio.h>
3 #include <string.h>
4 #include <limits.h>
5 #include <stdint.h>
6 #include <stdlib.h>
7 #include <unistd.h>
8 #include <errno.h>
9 #include <assert.h>
10 #include "utils.h"
11
12 void * palloc(int size)
13 {
14         void *p;
15         p = malloc(size);
16         if(p == NULL) {
17                 printf("Error Malloc does not allocate\n");
18                 exit(1);
19         }
20         return p;
21 }
22
23 char *aprintf(const char *fmt, ...)
24 {
25         char *ret;
26         va_list arglist;
27
28         va_start(arglist, fmt);
29         vasprintf(&ret, fmt, arglist);
30         va_end(arglist);
31         return ret;
32 }
33
34 int strreplace(char * str, char src, char dest)
35 {
36         int i;
37         for(i = 0; str[i]; i++)
38                 if(str[i] == src)
39                         str[i] = dest;
40 }
41
42 void *_realloc_array(void *ptr, size_t size, size_t num)
43 {
44         if (num >= SIZE_MAX/size)
45                 return NULL;
46         return realloc_nofail(ptr, size * num);
47 }
48
49 void *realloc_nofail(void *ptr, size_t size)
50 {
51         ptr = realloc(ptr, size);
52         if (ptr)
53                 return ptr;
54         printf("realloc of %zu failed", size);
55 }