X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Futils.c;h=f61456d6f8ebfde0857b1392dab49a94396a9065;hp=f964e7e31d65e7a344909e25e519ad2a51515330;hb=d4c34b4439a9dbd89664de460ed37ecddc260fb1;hpb=10eff860a28b96582526eb739fd0a55441669938 diff --git a/sbr/utils.c b/sbr/utils.c index f964e7e..f61456d 100644 --- a/sbr/utils.c +++ b/sbr/utils.c @@ -31,7 +31,7 @@ mh_xrealloc(void *ptr, size_t size) /* Some non-POSIX realloc()s don't cope with realloc(NULL,sz) */ if (!ptr) { - return mh_xcalloc((size_t) 1, size); + return mh_xcalloc(1, size); } if (size == 0) { adios(EX_SOFTWARE, NULL, "Tried to realloc 0 bytes"); @@ -65,6 +65,18 @@ mh_xcalloc(size_t nmemb, size_t size) } /* +** Free a pointer and set it to NULL. +*/ +void +mh_free0(void * ptr) +{ + void ** p; + p = ptr; + free(*p); + *p = NULL; +} + +/* ** Return the present working directory, if the current directory does not ** exist, or is too long, make / the pwd. */ @@ -119,7 +131,7 @@ add(char *s2, char *s1) /* Copy s1 and free it */ if (s1) { memcpy(cp, s1, len1); - free(s1); + mh_free0(&s1); } /* Copy s2 */ @@ -155,7 +167,7 @@ create_folder(char *folder, int autocreate, void (*done_callback)(int)) if (!getanswer(cp)) { done_callback(EX_CANTCREAT); } - free(cp); + mh_free0(&cp); } else if (autocreate == -1) { /* do not create, so exit */ done_callback(EX_CANTCREAT);