From 1f49e675bbe1eaada53b678f07ee4ad75e25bbef Mon Sep 17 00:00:00 2001
From: "Kevin P. Fleming" <kpfleming@digium.com>
Date: Tue, 5 May 2009 13:18:21 +0000
Subject: [PATCH] Correct some flaws in the memory accounting code for
 stringfields and ao2 objects

Under some conditions, the memory allocation for stringfields and ao2 objects would not have supplied valid file/function names for MALLOC_DEBUG tracking, so this commit corrects that.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@192357 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 include/asterisk/stringfields.h | 2 +-
 main/astobj2.c                  | 2 +-
 main/utils.c                    | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/asterisk/stringfields.h b/include/asterisk/stringfields.h
index 3d59ea12c8..ca87b60ce5 100644
--- a/include/asterisk/stringfields.h
+++ b/include/asterisk/stringfields.h
@@ -244,7 +244,7 @@ void __ast_string_field_ptr_build_va(struct ast_string_field_mgr *mgr,
 
 /*! \brief free all memory - to be called before destroying the object */
 #define ast_string_field_free_memory(x)	\
-	__ast_string_field_init(&(x)->__field_mgr, &(x)->__field_mgr_pool, -1, NULL, 0, NULL)
+	__ast_string_field_init(&(x)->__field_mgr, &(x)->__field_mgr_pool, -1, __FILE__, __LINE__, __PRETTY_FUNCTION__)
 
 /*!
  * \internal
diff --git a/main/astobj2.c b/main/astobj2.c
index 81a3982f1e..78c4cc00fc 100644
--- a/main/astobj2.c
+++ b/main/astobj2.c
@@ -358,7 +358,7 @@ void *__ao2_alloc_debug(size_t data_size, ao2_destructor_fn destructor_fn, char
 
 void *__ao2_alloc(size_t data_size, ao2_destructor_fn destructor_fn)
 {
-	return internal_ao2_alloc(data_size, destructor_fn, NULL, 0, NULL);
+	return internal_ao2_alloc(data_size, destructor_fn, __FILE__, __LINE__, __FUNCTION__);
 }
 
 
diff --git a/main/utils.c b/main/utils.c
index 6709e02d16..106667c3a0 100644
--- a/main/utils.c
+++ b/main/utils.c
@@ -1605,7 +1605,7 @@ ast_string_field __ast_string_field_alloc_space(struct ast_string_field_mgr *mgr
 		if (add_string_pool(mgr, pool_head, new_size, mgr->owner_file, mgr->owner_line, mgr->owner_func))
 			return NULL;
 #else
-		if (add_string_pool(mgr, pool_head, new_size, NULL, 0, NULL))
+		if (add_string_pool(mgr, pool_head, new_size, __FILE__, __LINE__, __FUNCTION__))
 			return NULL;
 #endif
 	}
-- 
GitLab