Fix deadlock potential of chan_mobile.c:mbl_ast_hangup().

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@333784 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2011-08-29 21:05:43 +00:00
parent 92ad64998c
commit 97959f3e9a

View File

@@ -1321,21 +1321,10 @@ static int mbl_queue_hangup(struct mbl_pvt *pvt)
static int mbl_ast_hangup(struct mbl_pvt *pvt)
{
int res = 0;
for (;;) {
if (pvt->owner) {
if (ast_channel_trylock(pvt->owner)) {
DEADLOCK_AVOIDANCE(&pvt->lock);
} else {
res = ast_hangup(pvt->owner);
/* no need to unlock, ast_hangup() frees the
* channel */
break;
}
} else
break;
if (pvt->owner) {
ast_hangup(pvt->owner);
}
return res;
return 0;
}
/*!