syscall: task: fix task_duplicate not taking a reference to the new task's address space

This commit is contained in:
2026-04-19 20:17:05 +01:00
parent 4a9e907a75
commit a30401d8b1
+7 -6
View File
@@ -540,18 +540,19 @@ kern_status_t sys_task_duplicate(
return status;
}
schedule_thread_on_cpu(new_thread);
child_handle_slot->h_object = &new_task->t_base;
space_handle_slot->h_object = &new_task->t_address_space->s_base;
space_handle_slot->h_object
= object_ref(&new_task->t_address_space->s_base);
task_unlock_irqrestore(self, flags);
*out_task = child_handle;
*out_address_space = space_handle;
/* clear TLB */
pmap_switch(self->t_pmap);
put_current_task(self);
*out_task = child_handle;
*out_address_space = space_handle;
schedule_thread_on_cpu(new_thread);
return KERN_OK;
}