mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	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:
		| @@ -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; | ||||
| } | ||||
|  | ||||
| /*! | ||||
|   | ||||
		Reference in New Issue
	
	Block a user