[ARM] Fix stacktrace FP range checking
Fix an oops in the stacktrace code, caused by improper range checking. We subtract 12 off 'fp' before testing to see if it's below the low bound. However, if 'fp' were zero before, it becomes a very large positive number, causing this test to succeed where it should fail. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
		
					parent
					
						
							
								b91d8a1205
							
						
					
				
			
			
				commit
				
					
						5b10c8e436
					
				
			
		
					 1 changed files with 1 additions and 1 deletions
				
			
		|  | @ -13,7 +13,7 @@ int walk_stackframe(unsigned long fp, unsigned long low, unsigned long high, | |||
| 		/*
 | ||||
| 		 * Check current frame pointer is within bounds | ||||
| 		 */ | ||||
| 		if ((fp - 12) < low || fp + 4 >= high) | ||||
| 		if (fp < (low + 12) || fp + 4 >= high) | ||||
| 			break; | ||||
| 
 | ||||
| 		frame = (struct stackframe *)(fp - 12); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Russell King
				Russell King