]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_sorcery_realtime.c: Fix ref leak if object failed to apply.
authorRichard Mudgett <rmudgett@digium.com>
Fri, 2 Feb 2018 21:43:34 +0000 (15:43 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Fri, 2 Feb 2018 23:45:04 +0000 (17:45 -0600)
Change-Id: I3c7106ff77009754725cee790eadf5da44154ab6

res/res_sorcery_realtime.c

index 9b0b25fb144c6cdf72af541e1cf59f18bcce5af2..c74e1c1a8687cb04ae2a99269b573d30545ae3d8 100644 (file)
@@ -178,6 +178,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;
        }
 
@@ -235,7 +236,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);
                }