Loading lib/memdebug.c +28 −2 Original line number Diff line number Diff line Loading @@ -130,6 +130,32 @@ void *curl_domalloc(size_t wantedsize, int line, const char *source) return mem->mem; } void *curl_docalloc(size_t wanted_elements, size_t wanted_size, int line, const char *source) { struct memdebug *mem; size_t size, user_size; if(countcheck("calloc", line, source)) return NULL; /* alloc at least 64 bytes */ user_size = wanted_size * wanted_elements; size = sizeof(struct memdebug) + user_size; mem = (struct memdebug *)(malloc)(size); if(mem) { /* fill memory with zeroes */ memset(mem->mem, 0, user_size); mem->size = user_size; } if(logfile && source) fprintf(logfile, "MEM %s:%d calloc(%u,%u) = %p\n", source, line, wanted_elements, wanted_size, mem->mem); return mem->mem; } char *curl_dostrdup(const char *str, int line, const char *source) { char *mem; Loading Loading @@ -235,8 +261,8 @@ FILE *curl_fopen(const char *file, const char *mode, { FILE *res=(fopen)(file, mode); if(logfile) fprintf(logfile, "FILE %s:%d fopen(\"%s\") = %p\n", source, line, file, res); fprintf(logfile, "FILE %s:%d fopen(\"%s\",\"%s\") = %p\n", source, line, file, mode, res); return res; } Loading lib/memdebug.h +2 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ extern FILE *logfile; /* memory functions */ void *curl_domalloc(size_t size, int line, const char *source); void *curl_docalloc(size_t elements, size_t size, int line, const char *source); void *curl_dorealloc(void *ptr, size_t size, int line, const char *source); void curl_dofree(void *ptr, int line, const char *source); char *curl_dostrdup(const char *str, int line, const char *source); Loading @@ -72,6 +73,7 @@ int curl_fclose(FILE *file, int line, const char *source); #undef strdup #define strdup(ptr) curl_dostrdup(ptr, __LINE__, __FILE__) #define malloc(size) curl_domalloc(size, __LINE__, __FILE__) #define calloc(nbelem,size) curl_docalloc(nbelem, size, __LINE__, __FILE__) #define realloc(ptr,size) curl_dorealloc(ptr, size, __LINE__, __FILE__) #define free(ptr) curl_dofree(ptr, __LINE__, __FILE__) Loading Loading
lib/memdebug.c +28 −2 Original line number Diff line number Diff line Loading @@ -130,6 +130,32 @@ void *curl_domalloc(size_t wantedsize, int line, const char *source) return mem->mem; } void *curl_docalloc(size_t wanted_elements, size_t wanted_size, int line, const char *source) { struct memdebug *mem; size_t size, user_size; if(countcheck("calloc", line, source)) return NULL; /* alloc at least 64 bytes */ user_size = wanted_size * wanted_elements; size = sizeof(struct memdebug) + user_size; mem = (struct memdebug *)(malloc)(size); if(mem) { /* fill memory with zeroes */ memset(mem->mem, 0, user_size); mem->size = user_size; } if(logfile && source) fprintf(logfile, "MEM %s:%d calloc(%u,%u) = %p\n", source, line, wanted_elements, wanted_size, mem->mem); return mem->mem; } char *curl_dostrdup(const char *str, int line, const char *source) { char *mem; Loading Loading @@ -235,8 +261,8 @@ FILE *curl_fopen(const char *file, const char *mode, { FILE *res=(fopen)(file, mode); if(logfile) fprintf(logfile, "FILE %s:%d fopen(\"%s\") = %p\n", source, line, file, res); fprintf(logfile, "FILE %s:%d fopen(\"%s\",\"%s\") = %p\n", source, line, file, mode, res); return res; } Loading
lib/memdebug.h +2 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ extern FILE *logfile; /* memory functions */ void *curl_domalloc(size_t size, int line, const char *source); void *curl_docalloc(size_t elements, size_t size, int line, const char *source); void *curl_dorealloc(void *ptr, size_t size, int line, const char *source); void curl_dofree(void *ptr, int line, const char *source); char *curl_dostrdup(const char *str, int line, const char *source); Loading @@ -72,6 +73,7 @@ int curl_fclose(FILE *file, int line, const char *source); #undef strdup #define strdup(ptr) curl_dostrdup(ptr, __LINE__, __FILE__) #define malloc(size) curl_domalloc(size, __LINE__, __FILE__) #define calloc(nbelem,size) curl_docalloc(nbelem, size, __LINE__, __FILE__) #define realloc(ptr,size) curl_dorealloc(ptr, size, __LINE__, __FILE__) #define free(ptr) curl_dofree(ptr, __LINE__, __FILE__) Loading