summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorJenkins2 <jenkins2@gerrit.asterisk.org>2018-02-05 13:05:40 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2018-02-05 13:05:40 -0600
commit0a784a91a37061e29702db5a1d4e2c753a2567f3 (patch)
tree55f98be9b73d7f291c0c82e62af4e690fa330bba /res
parent2d90b1efd9f41a133f44fc562415b9e2e34af2df (diff)
parentbef49d90c1cc013aba248c757cd3db2436175c03 (diff)
Merge "res_sorcery_realtime.c: Fix ref leak if object failed to apply."
Diffstat (limited to 'res')
-rw-r--r--res/res_sorcery_realtime.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/res/res_sorcery_realtime.c b/res/res_sorcery_realtime.c
index 29fbeb968..101034009 100644
--- a/res/res_sorcery_realtime.c
+++ b/res/res_sorcery_realtime.c
@@ -176,6 +176,7 @@ static void *sorcery_realtime_retrieve_fields(const struct ast_sorcery *sorcery,
if (!id
|| !(object = ast_sorcery_alloc(sorcery, type, id->value))
|| ast_sorcery_objectset_apply(sorcery, object, objectset)) {
+ ao2_cleanup(object);
return NULL;
}
@@ -233,7 +234,9 @@ static void sorcery_realtime_retrieve_multiple(const struct ast_sorcery *sorcery
objectset = sorcery_realtime_filter_objectset(objectset, &id, sorcery, type);
- if (id && (object = ast_sorcery_alloc(sorcery, type, id->value)) && !ast_sorcery_objectset_apply(sorcery, object, objectset)) {
+ if (id
+ && (object = ast_sorcery_alloc(sorcery, type, id->value))
+ && !ast_sorcery_objectset_apply(sorcery, object, objectset)) {
ao2_link(objects, object);
}