get_malloc_leak_info: Fix assumption that totalMemory out parameter was initialized to zero.

The get_malloc_leak_info() currently asssumes that the totalMemory out parameter
was pre-initialized to zero before the routine is called. If it is not then the
accumulated totalMemory value will be incorrect. It is likely that many callers
will simply allocate totalMemory on the stack with no initialization and assume
that get_malloc_leak_info will set the proper value.

As an example, the caller in frameworks/base/core/jni/android_os_Debug.cpp
calls get_malloc_leak_info() with the address uninitiazed stack variable
for totalMemory. It is probably best to fix this in get_malloc_leak_info.

Change-Id: I84c927c3781419585794726115b7d34d8fdd24ae
This commit is contained in:
tedbo 2010-10-05 13:06:06 -07:00
parent abdb3695b2
commit 9d8be5485c

View file

@ -120,6 +120,7 @@ void get_malloc_leak_info(uint8_t** info, size_t* overallSize,
totalMemory == NULL || backtraceSize == NULL) {
return;
}
*totalMemory = 0;
pthread_mutex_lock(&gAllocationsMutex);
@ -127,7 +128,6 @@ void get_malloc_leak_info(uint8_t** info, size_t* overallSize,
*info = NULL;
*overallSize = 0;
*infoSize = 0;
*totalMemory = 0;
*backtraceSize = 0;
goto done;
}