From 4e5fd8376c55ecd44ccc9cce96b9e061f2d6698e Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Tue, 23 Dec 2008 15:18:43 +0000 Subject: [PATCH] Merged revisions 166569 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r166569 | mmichelson | 2008-12-23 09:17:54 -0600 (Tue, 23 Dec 2008) | 20 lines Merged revisions 166568 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r166568 | mmichelson | 2008-12-23 09:16:26 -0600 (Tue, 23 Dec 2008) | 12 lines Fix a crash resulting from a datastore with inheritance but no duplicate callback The fix for this is to simply set the newly created datastore's data pointer to NULL if it is inherited but has no duplicate callback. (closes issue #14113) Reported by: francesco_r Patches: 14113.patch uploaded by putnopvut (license 60) Tested by: francesco_r ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@166570 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/channel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/channel.c b/main/channel.c index b66c875b52..3148f65023 100644 --- a/main/channel.c +++ b/main/channel.c @@ -1429,7 +1429,7 @@ int ast_channel_datastore_inherit(struct ast_channel *from, struct ast_channel * if (datastore->inheritance > 0) { datastore2 = ast_channel_datastore_alloc(datastore->info, datastore->uid); if (datastore2) { - datastore2->data = datastore->info->duplicate(datastore->data); + datastore2->data = datastore->info->duplicate ? datastore->info->duplicate(datastore->data) : NULL; datastore2->inheritance = datastore->inheritance == DATASTORE_INHERIT_FOREVER ? DATASTORE_INHERIT_FOREVER : datastore->inheritance - 1; AST_LIST_INSERT_TAIL(&to->datastores, datastore2, entry); }