fork: copy saved_cmdline from parent process
This fixes empty children names for forked children. Change-Id: I9512f0981d2a241c106ee3e8500f2084ef61a660
This commit is contained in:
committed by
Masamichi Takagi
parent
dd676f7149
commit
201fa7fb55
@@ -442,18 +442,30 @@ clone_thread(struct thread *org, unsigned long pc, unsigned long sp,
|
||||
|
||||
proc->termsig = termsig;
|
||||
asp = create_address_space(cpu_local_var(resource_set), 1);
|
||||
if(!asp){
|
||||
if (!asp) {
|
||||
kfree(proc);
|
||||
goto err_free_proc;
|
||||
}
|
||||
proc->vm = kmalloc(sizeof(struct process_vm), IHK_MC_AP_NOWAIT);
|
||||
if(!proc->vm){
|
||||
if (!proc->vm) {
|
||||
release_address_space(asp);
|
||||
kfree(proc);
|
||||
goto err_free_proc;
|
||||
}
|
||||
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");
|
||||
if (init_process_vm(proc, asp, proc->vm) != 0) {
|
||||
release_address_space(asp);
|
||||
|
||||
Reference in New Issue
Block a user