From: Mark Spencer Date: Wed, 16 Jul 2003 02:25:53 +0000 (+0000) Subject: Fix potential race in check_availability X-Git-Tag: 0.5.0~305 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=acb58deb48f994e326c4d876704d37eaa0586343;p=thirdparty%2Fasterisk.git Fix potential race in check_availability git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1191 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_agent.c b/channels/chan_agent.c index 5031a35ad9..77a8ba10e3 100755 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -605,7 +605,7 @@ static int check_availability(struct agent_pvt *newlyavailable, int needlock) continue; } ast_pthread_mutex_lock(&p->lock); - if (p->pending && ((p->group && (newlyavailable->group & p->group)) || !strcmp(p->agent, newlyavailable->agent))) { + if (!p->abouttograb && p->pending && ((p->group && (newlyavailable->group & p->group)) || !strcmp(p->agent, newlyavailable->agent))) { ast_log(LOG_DEBUG, "Call '%s' looks like a winner for agent '%s'\n", p->owner->name, newlyavailable->agent); /* We found a pending call, time to merge */ chan = agent_new(newlyavailable, AST_STATE_DOWN);