diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/fork.c | 1 | ||||
-rw-r--r-- | kernel/sys.c | 5 |
2 files changed, 2 insertions, 4 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index b6dd0bbf4240..a17621c6cd42 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -1226,7 +1226,6 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1226 | if (!try_module_get(task_thread_info(p)->exec_domain->module)) | 1226 | if (!try_module_get(task_thread_info(p)->exec_domain->module)) |
1227 | goto bad_fork_cleanup_count; | 1227 | goto bad_fork_cleanup_count; |
1228 | 1228 | ||
1229 | p->did_exec = 0; | ||
1230 | delayacct_tsk_init(p); /* Must remain after dup_task_struct() */ | 1229 | delayacct_tsk_init(p); /* Must remain after dup_task_struct() */ |
1231 | copy_flags(clone_flags, p); | 1230 | copy_flags(clone_flags, p); |
1232 | INIT_LIST_HEAD(&p->children); | 1231 | INIT_LIST_HEAD(&p->children); |
diff --git a/kernel/sys.c b/kernel/sys.c index c72311324ea7..ecd3ea12f72a 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
@@ -895,8 +895,7 @@ SYSCALL_DEFINE1(times, struct tms __user *, tbuf) | |||
895 | * only important on a multi-user system anyway, to make sure one user | 895 | * only important on a multi-user system anyway, to make sure one user |
896 | * can't send a signal to a process owned by another. -TYT, 12/12/91 | 896 | * can't send a signal to a process owned by another. -TYT, 12/12/91 |
897 | * | 897 | * |
898 | * Auch. Had to add the 'did_exec' flag to conform completely to POSIX. | 898 | * !PF_FORKNOEXEC check to conform completely to POSIX. |
899 | * LBT 04.03.94 | ||
900 | */ | 899 | */ |
901 | SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid) | 900 | SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid) |
902 | { | 901 | { |
@@ -932,7 +931,7 @@ SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid) | |||
932 | if (task_session(p) != task_session(group_leader)) | 931 | if (task_session(p) != task_session(group_leader)) |
933 | goto out; | 932 | goto out; |
934 | err = -EACCES; | 933 | err = -EACCES; |
935 | if (p->did_exec) | 934 | if (!(p->flags & PF_FORKNOEXEC)) |
936 | goto out; | 935 | goto out; |
937 | } else { | 936 | } else { |
938 | err = -ESRCH; | 937 | err = -ESRCH; |