mirror of
https://github.com/RGBCube/serenity
synced 2025-05-25 22:05:07 +00:00
Kernel: Prevent kprintf() from asserting in Console::the() (#718)
This triggered a stack overflow because ubsan can call kprintf() at any time, even before Console is initialized.
This commit is contained in:
parent
8216019b2e
commit
81c4dcadf1
3 changed files with 14 additions and 1 deletions
|
@ -70,7 +70,14 @@ static void console_putch(char*&, char ch)
|
|||
{
|
||||
if (serial_debug)
|
||||
serial_putch(ch);
|
||||
Console::the().put_char(ch);
|
||||
|
||||
// It would be bad to reach the assert in Console()::the() and do a stack overflow
|
||||
|
||||
if (Console::is_initialized()) {
|
||||
Console::the().put_char(ch);
|
||||
} else {
|
||||
IO::out8(0xe9, ch);
|
||||
}
|
||||
}
|
||||
|
||||
int kprintf(const char* fmt, ...)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue