Fix null deref in contextSwitch().

This commit is contained in:
Andreas Kling 2018-10-21 21:57:43 +02:00
commit dd6706a1a1
Notes: sideshowbarker 2024-07-19 18:46:02 +09:00

View file

@ -360,14 +360,17 @@ static bool contextSwitch(Task* t)
if (current == t) if (current == t)
return false; return false;
// If the last task hasn't blocked (still marked as running), if (current) {
// mark it as runnable for the next round. // If the last task hasn't blocked (still marked as running),
if (current->state() == Task::Running) // mark it as runnable for the next round.
current->setState(Task::Runnable); if (current->state() == Task::Running)
current->setState(Task::Runnable);
bool success = MemoryManager::the().unmapRegionsForTask(*current); bool success = MemoryManager::the().unmapRegionsForTask(*current);
ASSERT(success); ASSERT(success);
success = MemoryManager::the().mapRegionsForTask(*t); }
bool success = MemoryManager::the().mapRegionsForTask(*t);
ASSERT(success); ASSERT(success);
current = t; current = t;