From d27ee3b1bf3553ca16aa1237252747b962473a0d Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Thu, 12 May 2016 15:18:51 -0500 Subject: [PATCH] res_sorcery_astdb: Fix creation of retrieved objects. The contents of this commit come from a portion of commit a01ce2b88912cd802bb045e40fe264906e55bc45 of the 13 branch. The commit referenced above's main point was to introduce some performance enhancements for realtime. However, mixed in with that was a bug fix for sorcery's astdb backend. The astdb was using an empty objectset to create an object. This, combined with the floating point conversion bug, was what was contributing to contacts being deleted early. ASTERISK-26007 #close Reported by Greg Siemon Change-Id: I84594079356a6fb2d2f61d56bf644e5409925ee2 --- res/res_sorcery_astdb.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/res/res_sorcery_astdb.c b/res/res_sorcery_astdb.c index e5de9f7bbb..c6b5a1b333 100644 --- a/res/res_sorcery_astdb.c +++ b/res/res_sorcery_astdb.c @@ -97,7 +97,6 @@ static void *sorcery_astdb_retrieve_fields_common(const struct ast_sorcery *sorc const char *key = entry->key + strlen(family) + 2; RAII_VAR(struct ast_json *, json, NULL, ast_json_unref); struct ast_json_error error; - RAII_VAR(struct ast_variable *, objset, NULL, ast_variables_destroy); RAII_VAR(struct ast_variable *, existing, NULL, ast_variables_destroy); void *object = NULL; @@ -113,7 +112,7 @@ static void *sorcery_astdb_retrieve_fields_common(const struct ast_sorcery *sorc } if (!(object = ast_sorcery_alloc(sorcery, type, key)) || - ast_sorcery_objectset_apply(sorcery, object, objset)) { + ast_sorcery_objectset_apply(sorcery, object, existing)) { ao2_cleanup(object); return NULL; }