mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-17 07:18:15 +00:00
res_sorcery_realtime.c: Fix ref leak if object failed to apply.
Change-Id: I3c7106ff77009754725cee790eadf5da44154ab6
This commit is contained in:
@@ -176,6 +176,7 @@ static void *sorcery_realtime_retrieve_fields(const struct ast_sorcery *sorcery,
|
|||||||
if (!id
|
if (!id
|
||||||
|| !(object = ast_sorcery_alloc(sorcery, type, id->value))
|
|| !(object = ast_sorcery_alloc(sorcery, type, id->value))
|
||||||
|| ast_sorcery_objectset_apply(sorcery, object, objectset)) {
|
|| ast_sorcery_objectset_apply(sorcery, object, objectset)) {
|
||||||
|
ao2_cleanup(object);
|
||||||
return NULL;
|
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);
|
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);
|
ao2_link(objects, object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user