]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Correct some flaws in the memory accounting code for stringfields and ao2 objects
authorKevin P. Fleming <kpfleming@digium.com>
Tue, 5 May 2009 13:18:21 +0000 (13:18 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Tue, 5 May 2009 13:18:21 +0000 (13:18 +0000)
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
main/astobj2.c
main/utils.c

index 3d59ea12c8baf8d00133a79e224bae2e5c953052..ca87b60ce5e69052de37b983df3494da875ed4d4 100644 (file)
@@ -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
index 81a3982f1e6edb8e04ed991112509af994e1a2f6..78c4cc00fcf3ea1b02df8b6bfcaf2bab6c308015 100644 (file)
@@ -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__);
 }
 
 
index 6709e02d1681b07d0fbb6ab2b045687db8f7e2d0..106667c3a0ce690709202390dcee31d54939af8f 100644 (file)
@@ -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
        }