From: Russell Bryant Date: Thu, 13 Sep 2007 13:34:24 +0000 (+0000) Subject: Fix a missing unref of a member struct. This was pointed out by Marta. Thanks! X-Git-Tag: 1.6.0-beta1~3^2~1436 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a0e8ee0a3d25e4e2386fa97c37869c7910ed6466;p=thirdparty%2Fasterisk.git Fix a missing unref of a member struct. This was pointed out by Marta. Thanks! This function in 1.4 didn't have the problem. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82311 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_queue.c b/apps/app_queue.c index adf7525561..0f3f824463 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -514,21 +514,17 @@ static enum queue_member_status get_member_status(struct call_queue *q, int max_ ast_mutex_lock(&q->lock); mem_iter = ao2_iterator_init(q->members, 0); - while ((member = ao2_iterator_next(&mem_iter))) { - if (max_penalty && (member->penalty > max_penalty)) { - ao2_ref(member, -1); + for (; (member = ao2_iterator_next(&mem_iter)); ao2_ref(member, -1)) { + if (max_penalty && (member->penalty > max_penalty)) continue; - } switch (member->status) { case AST_DEVICE_INVALID: /* nothing to do */ - ao2_ref(member, -1); break; case AST_DEVICE_UNAVAILABLE: if (result != QUEUE_NO_UNPAUSED_REACHABLE_MEMBERS) result = QUEUE_NO_REACHABLE_MEMBERS; - ao2_ref(member, -1); break; default: if (member->paused) {