Free any datastores attached to dummy channels.

Revision 370205 added the use of a datastore attached to a dummy channel to
resolve a memory leak, but ast_dummy_channel_destructor() in this branch did
not free datastores, resulting in a continued (but slightly smaller) memory
leak. This patch backports the change to free said datastores from the Asterisk
trunk.

(related to issue AST-916)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@370360 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin P. Fleming
2012-07-23 14:41:03 +00:00
parent ad8a86bef0
commit aac6e33ba4

View File

@@ -2499,6 +2499,13 @@ static void ast_dummy_channel_destructor(void *obj)
struct ast_channel *chan = obj; struct ast_channel *chan = obj;
struct ast_var_t *vardata; struct ast_var_t *vardata;
struct varshead *headp; struct varshead *headp;
struct ast_datastore *datastore;
/* Get rid of each of the data stores on the channel */
while ((datastore = AST_LIST_REMOVE_HEAD(&chan->datastores, entry))) {
/* Free the data store */
ast_datastore_free(datastore);
}
headp = &chan->varshead; headp = &chan->varshead;