X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/509574b18a3373030cd0d7b979499499ff06dd9b..e66387b252f36c894d79769cbfb178bc950600d4:/lunaix-os/kernel/process.c diff --git a/lunaix-os/kernel/process.c b/lunaix-os/kernel/process.c index 64f2654..020dfb4 100644 --- a/lunaix-os/kernel/process.c +++ b/lunaix-os/kernel/process.c @@ -107,14 +107,14 @@ __DEFINE_LXSYSCALL2(int, setpgid, pid_t, pid, pid_t, pgid) pgid = pgid ? pgid : proc->pid; - llist_delete(&proc->grp_member); struct proc_info* gruppenfuhrer = get_process(pgid); - if (!gruppenfuhrer) { + if (!gruppenfuhrer || proc->pgid == proc->pid) { __current->k_status = LXINVL; return -1; } + llist_delete(&proc->grp_member); llist_append(&gruppenfuhrer->grp_member, &proc->grp_member); proc->pgid = pgid;