fork: copy saved_cmdline from parent process

This fixes empty children names for forked children.

Change-Id: I9512f0981d2a241c106ee3e8500f2084ef61a660
This commit is contained in:
Dominique Martinet
2018-09-20 13:43:03 +09:00
committed by Masamichi Takagi
parent dd676f7149
commit 201fa7fb55

View File

@@ -454,6 +454,18 @@ clone_thread(struct thread *org, unsigned long pc, unsigned long sp,
} }
memset(proc->vm, '\0', sizeof(struct process_vm)); memset(proc->vm, '\0', sizeof(struct process_vm));
proc->saved_cmdline_len = org->proc->saved_cmdline_len;
proc->saved_cmdline = kmalloc(proc->saved_cmdline_len,
IHK_MC_AP_NOWAIT);
if (!proc->saved_cmdline) {
release_address_space(asp);
kfree(proc->vm);
kfree(proc);
goto err_free_proc;
}
memcpy(proc->saved_cmdline, org->proc->saved_cmdline,
proc->saved_cmdline_len);
dkprintf("fork(): init_process_vm()\n"); dkprintf("fork(): init_process_vm()\n");
if (init_process_vm(proc, asp, proc->vm) != 0) { if (init_process_vm(proc, asp, proc->vm) != 0) {
release_address_space(asp); release_address_space(asp);