25 lines
720 B
Diff
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 */
|
|
}
|