Kernel: Validate pointer's when printing stack trace
There was an kernel panic if stack trace contained uncanonical addresses.
This commit is contained in:
		
							parent
							
								
									ae89237453
								
							
						
					
					
						commit
						57aec2a733
					
				| 
						 | 
					@ -41,6 +41,12 @@ namespace Debug
 | 
				
			||||||
		BAN::Formatter::print(Debug::putchar, "\e[36mStack trace:\r\n");
 | 
							BAN::Formatter::print(Debug::putchar, "\e[36mStack trace:\r\n");
 | 
				
			||||||
		while (frame)
 | 
							while (frame)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
 | 
								if (!PageTable::is_valid_pointer((vaddr_t)frame))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									derrorln("invalid pointer {H}", (vaddr_t)frame);
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (PageTable::current().is_page_free((vaddr_t)frame & PAGE_ADDR_MASK))
 | 
								if (PageTable::current().is_page_free((vaddr_t)frame & PAGE_ADDR_MASK))
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				derrorln("    {} not mapped", frame);
 | 
									derrorln("    {} not mapped", frame);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue