diff options
-rw-r--r-- | Changelog-Trunk.txt | 1 | ||||
-rw-r--r-- | src/common/malloc.c | 8 |
2 files changed, 5 insertions, 4 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 1a41b5b97..cfab32d1e 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2007/12/30 + * Trully fixed the previous commits. (missing cast and incomplete size) * Made the memory manager set allocated memory to 0xCD and freed memory to 0xDD. The memory manager no longer 'hides' uses of freed memory. 2007/12/29 diff --git a/src/common/malloc.c b/src/common/malloc.c index 7f1d60b29..f2866e564 100644 --- a/src/common/malloc.c +++ b/src/common/malloc.c @@ -230,7 +230,7 @@ void* _mmalloc(size_t size, const char *file, int line, const char *func ) unit_head_large_first = p; #ifdef DEBUG_MEMMGR // set allocated data to 0xCD (clean memory) - memset(p + sizeof(struct unit_head_large) - sizeof(int), 0xCD, size); + memset((char *)p + sizeof(struct unit_head_large) - sizeof(int), 0xCD, size); #endif *(int*)((char*)p + sizeof(struct unit_head_large) - sizeof(int) + size) = 0xdeadbeaf; return (char *)p + sizeof(struct unit_head_large) - sizeof(int); @@ -292,7 +292,7 @@ void* _mmalloc(size_t size, const char *file, int line, const char *func ) head->file = file; #ifdef DEBUG_MEMMGR // set allocated memory to 0xCD (clean memory) - memset(head + sizeof(struct unit_head) - sizeof(int), 0xCD, size); + memset((char *)head + sizeof(struct unit_head) - sizeof(int), 0xCD, size); #endif *(int*)((char*)head + sizeof(struct unit_head) - sizeof(int) + size) = 0xdeadbeaf; return (char *)head + sizeof(struct unit_head) - sizeof(int); @@ -379,7 +379,7 @@ void _mfree(void *ptr, const char *file, int line, const char *func ) memmgr_usage_bytes -= head->size; #ifdef DEBUG_MEMMGR // set freed memory to 0xDD (dead memory) - memset(ptr, 0xDD, size_hash - sizeof(struct unit_head_large) + sizeof(int) ); + memset(ptr, 0xDD, head->size); #endif FREE(head_large,file,line,func); } else { @@ -398,7 +398,7 @@ void _mfree(void *ptr, const char *file, int line, const char *func ) head->block = NULL; #ifdef DEBUG_MEMMGR // set freed memory to 0xDD (dead memory) - memset(ptr, 0xDD, head->size - sizeof(struct unit_head) + sizeof(int) ); + memset(ptr, 0xDD, head->size); #endif memmgr_usage_bytes -= head->size; if(--block->unit_used == 0) { |