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.4@166568
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
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);
}