diff --git a/src/multitasking/fork.c b/src/multitasking/fork.c index 1c453b0..8ed8b3a 100644 --- a/src/multitasking/fork.c +++ b/src/multitasking/fork.c @@ -60,7 +60,9 @@ static int deep_copy(struct pcb *new_pcb) free_pts(); return -1; } - if (!copy_pt(PTE2VA(1023, i), new_pt, i)) { + PD[i + USER_PT_END / 2] = (uint32_t)new_pt | INIT_FLAGS; + if (!copy_pt(PTE2VA(1023, i), PTE2VA(1023, i + USER_PT_END / 2), + i)) { free_pts(); return -1; }