aboutsummaryrefslogtreecommitdiff
path: root/lib/memdebug.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2004-02-26 14:52:51 +0000
committerDaniel Stenberg <daniel@haxx.se>2004-02-26 14:52:51 +0000
commit07de0ff0ff2e99ae18c0326c1916e07ca5847028 (patch)
treef7203a32a88ce74922b08c6650eec110b4c5b8f7 /lib/memdebug.c
parent7d8cd5906c890f8e4c7ceae1b5f9e650fe81e08b (diff)
Gisle Vanem's added support calloc()-debugging and outputting mode for
fopen() as well.
Diffstat (limited to 'lib/memdebug.c')
-rw-r--r--lib/memdebug.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/lib/memdebug.c b/lib/memdebug.c
index 1eeb5c93e..a51e1f1d1 100644
--- a/lib/memdebug.c
+++ b/lib/memdebug.c
@@ -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;
@@ -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;
}