diff options
Diffstat (limited to 'kernel/sched/scheduler.c')
-rw-r--r-- | kernel/sched/scheduler.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/sched/scheduler.c b/kernel/sched/scheduler.c index e81320b..7d13277 100644 --- a/kernel/sched/scheduler.c +++ b/kernel/sched/scheduler.c @@ -54,7 +54,11 @@ process_t *create_process(process_t *p) { r->cr3); r->signal_handler_stack = 0x80000000; - strcpy(r->current_working_directory, "/"); + if (p) { + strcpy(r->current_working_directory, p->current_working_directory); + } else { + strcpy(r->current_working_directory, "/"); + } r->data_segment_end = (p) ? p->data_segment_end : NULL; memset((void *)r->halts, 0, 2 * sizeof(u32)); for (int i = 0; i < 100; i++) { |