summaryrefslogtreecommitdiff
path: root/kernel/sched/scheduler.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched/scheduler.c')
-rw-r--r--kernel/sched/scheduler.c6
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++) {