]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] signal error return fix
authorAndries E. Brouwer <andries.brouwer@cwi.nl>
Tue, 11 Feb 2003 01:23:38 +0000 (17:23 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Tue, 11 Feb 2003 01:23:38 +0000 (17:23 -0800)
kernel/sys.c

index dffb67035c78d2a29bdabc7121ae6ce0ef568537..afa6d2fc1372eaeea67965f71dcb6c9ab02ff84a 100644 (file)
@@ -907,6 +907,7 @@ asmlinkage long sys_setpgid(pid_t pid, pid_t pgid)
        p = find_task_by_pid(pid);
        if (!p)
                goto out;
+
        err = -EINVAL;
        if (!thread_group_leader(p))
                goto out;
@@ -918,11 +919,16 @@ asmlinkage long sys_setpgid(pid_t pid, pid_t pgid)
                err = -EACCES;
                if (p->did_exec)
                        goto out;
-       } else if (p != current)
-               goto out;
+       } else {
+               err = -ESRCH;
+               if (p != current)
+                       goto out;
+       }
+
        err = -EPERM;
        if (p->leader)
                goto out;
+
        if (pgid != pid) {
                struct task_struct *p;
                struct pid *pid;