mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 09:02:43 +00:00 
			
		
		
		
	Kernel: Ensure that CommandLine is initialized before choosing PanicMode
If the kernel commandline is not initialized, just halt everything.
This commit is contained in:
		
							parent
							
								
									0adee378fd
								
							
						
					
					
						commit
						d67c70d043
					
				
					 3 changed files with 8 additions and 0 deletions
				
			
		|  | @ -27,6 +27,11 @@ UNMAP_AFTER_INIT void CommandLine::early_initialize(const char* cmd_line) | ||||||
|     s_cmd_line[length] = '\0'; |     s_cmd_line[length] = '\0'; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | bool CommandLine::was_initialized() | ||||||
|  | { | ||||||
|  |     return s_the != nullptr; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| const CommandLine& kernel_command_line() | const CommandLine& kernel_command_line() | ||||||
| { | { | ||||||
|     VERIFY(s_the); |     VERIFY(s_the); | ||||||
|  |  | ||||||
|  | @ -45,6 +45,7 @@ class CommandLine { | ||||||
| public: | public: | ||||||
|     static void early_initialize(const char* cmd_line); |     static void early_initialize(const char* cmd_line); | ||||||
|     static void initialize(); |     static void initialize(); | ||||||
|  |     static bool was_initialized(); | ||||||
| 
 | 
 | ||||||
|     enum class Validate { |     enum class Validate { | ||||||
|         Yes, |         Yes, | ||||||
|  |  | ||||||
|  | @ -33,6 +33,8 @@ void __panic(const char* file, unsigned int line, const char* function) | ||||||
| 
 | 
 | ||||||
|     critical_dmesgln("at {}:{} in {}", file, line, function); |     critical_dmesgln("at {}:{} in {}", file, line, function); | ||||||
|     dump_backtrace(PrintToScreen::Yes); |     dump_backtrace(PrintToScreen::Yes); | ||||||
|  |     if (!CommandLine::was_initialized()) | ||||||
|  |         Processor::halt(); | ||||||
|     switch (kernel_command_line().panic_mode()) { |     switch (kernel_command_line().panic_mode()) { | ||||||
|     case PanicMode::Shutdown: |     case PanicMode::Shutdown: | ||||||
|         __shutdown(); |         __shutdown(); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Liav A
						Liav A