From 3e6a354c4c7e9ff0bccd43221713bbf327d4670f Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 17 Nov 2000 15:31:45 +0000 Subject: [PATCH] now exits and alerts on bad uses of strdup() and free() --- lib/memdebug.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/memdebug.c b/lib/memdebug.c index dceb3bea9..9e5ca5040 100644 --- a/lib/memdebug.c +++ b/lib/memdebug.c @@ -74,8 +74,17 @@ void *curl_domalloc(size_t size, int line, char *source) char *curl_dostrdup(char *str, int line, char *source) { - char *mem=(strdup)(str); - size_t len=strlen(str)+1; + char *mem; + size_t len; + + if(NULL ==str) { + fprintf(stderr, "ILLEGAL strdup() on NULL at %s:%d\n", + source, line); + exit(2); + } + + mem=(strdup)(str); + len=strlen(str)+1; fprintf(logfile?logfile:stderr, "MEM %s:%d strdup(%p) (%d) = %p\n", source, line, str, len, mem); return mem; @@ -91,7 +100,14 @@ void *curl_dorealloc(void *ptr, size_t size, int line, char *source) void curl_dofree(void *ptr, int line, char *source) { + if(NULL == ptr) { + fprintf(stderr, "ILLEGAL free() on NULL at %s:%d\n", + source, line); + exit(2); + } + (free)(ptr); + fprintf(logfile?logfile:stderr, "MEM %s:%d free(%p)\n", source, line, ptr); }