mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	Ring all queue with more than 255 agents will cause crash.
1. Create a ring-all queue with 500 permanent agents. 2. Call it. 3. Asterisk will crash. The watchers array in app_queue.c has a hard limit of 255. Bounds checking is not done on this array. No sane person should put 255 people in a ring-all queue, but we should not crash anyway. * Added bounds checking to the watchers array. JIRA AST-464 JIRA SWP-2903 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@322484 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -3486,7 +3486,9 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte | ||||
| 				if (o->stillgoing) {	/* Keep track of important channels */ | ||||
| 					stillgoing = 1; | ||||
| 					if (o->chan) { | ||||
| 						watchers[pos++] = o->chan; | ||||
| 						if (pos < AST_MAX_WATCHERS) { | ||||
| 							watchers[pos++] = o->chan; | ||||
| 						} | ||||
| 						if (!start) | ||||
| 							start = o; | ||||
| 						else | ||||
|   | ||||
		Reference in New Issue
	
	Block a user