mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-02 10:22:46 +00:00
MALLOC_DEBUG: Fix some misuses of free() when MALLOC_DEBUG is enabled.
* There were several places in ARI where an external library was mallocing memory that must always be released with free(). When MALLOC_DEBUG is enabled, free() is redirected to the MALLOC_DEBUG version. Since the external library call still uses the normal malloc(), MALLOC_DEBUG complains that the freed memory block is not registered and will not free it. These cases must use ast_std_free(). * Changed calls to asprintf() and vasprintf() to the equivalent ast_asprintf() and ast_vasprintf() versions respectively. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@400270 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
13
main/utils.c
13
main/utils.c
@@ -656,9 +656,10 @@ static void lock_info_destroy(void *data)
|
||||
}
|
||||
|
||||
pthread_mutex_destroy(&lock_info->lock);
|
||||
if (lock_info->thread_name)
|
||||
free((void *) lock_info->thread_name);
|
||||
free(lock_info);
|
||||
if (lock_info->thread_name) {
|
||||
ast_free((void *) lock_info->thread_name);
|
||||
}
|
||||
ast_free(lock_info);
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -2184,7 +2185,7 @@ int ast_mkdir(const char *path, int mode)
|
||||
|
||||
static int safe_mkdir(const char *base_path, char *path, int mode)
|
||||
{
|
||||
RAII_VAR(char *, absolute_path, NULL, free);
|
||||
RAII_VAR(char *, absolute_path, NULL, ast_std_free);
|
||||
|
||||
absolute_path = realpath(path, NULL);
|
||||
|
||||
@@ -2206,7 +2207,7 @@ static int safe_mkdir(const char *base_path, char *path, int mode)
|
||||
int res;
|
||||
|
||||
while (path_term) {
|
||||
RAII_VAR(char *, absolute_subpath, NULL, free);
|
||||
RAII_VAR(char *, absolute_subpath, NULL, ast_std_free);
|
||||
|
||||
/* Truncate the path one past the slash */
|
||||
char c = *(path_term + 1);
|
||||
@@ -2254,7 +2255,7 @@ static int safe_mkdir(const char *base_path, char *path, int mode)
|
||||
|
||||
int ast_safe_mkdir(const char *base_path, const char *path, int mode)
|
||||
{
|
||||
RAII_VAR(char *, absolute_base_path, NULL, free);
|
||||
RAII_VAR(char *, absolute_base_path, NULL, ast_std_free);
|
||||
RAII_VAR(char *, p, NULL, ast_free);
|
||||
|
||||
if (base_path == NULL || path == NULL) {
|
||||
|
Reference in New Issue
Block a user