java-topology/defects/asterisk/patch/asterisk-0001-interface-exists-ao2-find.patch

25 lines
720 B
Diff

# UNDF: UNDF-2026-000000007
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -7686,20 +7686,9 @@ static struct member *interface_exists(struct call_queue *q, const char *interfa
{
- struct member *mem;
- struct ao2_iterator mem_iter;
-
if (!q) {
return NULL;
}
- mem_iter = ao2_iterator_init(q->members, 0);
- while ((mem = ao2_iterator_next(&mem_iter))) {
- if (!strcasecmp(interface, mem->interface)) {
- ao2_iterator_destroy(&mem_iter);
- return mem;
- }
- ao2_ref(mem, -1);
- }
- ao2_iterator_destroy(&mem_iter);
-
- return NULL;
+ /* q->members is an ao2 container keyed by interface string; use O(1) hash lookup */
+ return ao2_find(q->members, interface, OBJ_KEY); /* was O(M) iterator walk */
}