From: Richard Mudgett Date: Fri, 2 Feb 2018 21:43:34 +0000 (-0600) Subject: res_sorcery_realtime.c: Fix ref leak if object failed to apply. X-Git-Tag: 13.20.0-rc1~41^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d16cefd63f4798a4cd4298e5529819dafbbc685;p=thirdparty%2Fasterisk.git res_sorcery_realtime.c: Fix ref leak if object failed to apply. Change-Id: I3c7106ff77009754725cee790eadf5da44154ab6 --- diff --git a/res/res_sorcery_realtime.c b/res/res_sorcery_realtime.c index 9b0b25fb14..c74e1c1a86 100644 --- a/res/res_sorcery_realtime.c +++ b/res/res_sorcery_realtime.c @@ -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); }