Fix compilation error when MALLOC_DEBUG is enabled
authorMatthew Jordan <mjordan@digium.com>
Thu, 19 Jul 2012 22:08:20 +0000 (22:08 +0000)
committerMatthew Jordan <mjordan@digium.com>
Thu, 19 Jul 2012 22:08:20 +0000 (22:08 +0000)
To fix a memory leak in CEL, a channel datastore was introduced whose
destruction function pointer was pointed to the ast_free macro.  Without
MALLOC_DEBUG enabled this compiles as fine, as ast_free is defined as free.
With MALLOC_DEBUG enabled, however, ast_free takes on a definition from a
different place then utils.h, and became undefined.  This patch resolves this
by using a reference to ast_free_ptr.  When MALLOC_DEBUG is enabled, this
calls ast_free; when MALLOC_DEBUG is not enabled, this is defined to be
ast_free, which is defined to be free.

(issue AST-916)
Reported by: Thomas Arimont
........

Merged revisions 370273 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 370274 from http://svn.asterisk.org/svn/asterisk/branches/10

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370276 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/cel.c

index 8a708cc..785b791 100644 (file)
@@ -395,7 +395,7 @@ void ast_cel_check_retire_linkedid(struct ast_channel *chan)
  */
 static const struct ast_datastore_info fabricated_channel_datastore = {
        .type = "CEL fabricated channel",
-       .destroy = ast_free,
+       .destroy = ast_free_ptr,
 };
 
 struct ast_channel *ast_cel_fabricate_channel_from_event(const struct ast_event *event)