summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2011-06-24 14:34:50 +1000
committerStephen Rothwell <sfr@canb.auug.org.au>2011-06-24 14:34:50 +1000
commit0432af3969e963e2a8944354ba54a390f3ca69a9 (patch)
treef41e80b79ad779c5f994a2b83f43f966f56bb8b6 /fs
parent6522f9677b91214721efb54c42170a4e31512f54 (diff)
parent06d984737bac0545fe20bb5447ee488b95adb531 (diff)
Merge remote-tracking branch 'ptrace/ptrace'
Diffstat (limited to 'fs')
-rw-r--r--fs/exec.c11
-rw-r--r--fs/proc/array.c2
-rw-r--r--fs/proc/base.c2
3 files changed, 10 insertions, 5 deletions
diff --git a/fs/exec.c b/fs/exec.c
index f9f12ad299af..dda1e4a914fc 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1233,7 +1233,12 @@ int check_unsafe_exec(struct linux_binprm *bprm)
unsigned n_fs;
int res = 0;
- bprm->unsafe = tracehook_unsafe_exec(p);
+ if (p->ptrace) {
+ if (p->ptrace & PT_PTRACE_CAP)
+ bprm->unsafe |= LSM_UNSAFE_PTRACE_CAP;
+ else
+ bprm->unsafe |= LSM_UNSAFE_PTRACE;
+ }
n_fs = 1;
spin_lock(&p->fs->lock);
@@ -1389,7 +1394,7 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
bprm->recursion_depth = depth;
if (retval >= 0) {
if (depth == 0)
- tracehook_report_exec(fmt, bprm, regs);
+ ptrace_event(PTRACE_EVENT_EXEC, 0);
put_binfmt(fmt);
allow_write_access(bprm->file);
if (bprm->file)
@@ -1777,7 +1782,7 @@ static int zap_process(struct task_struct *start, int exit_code)
t = start;
do {
- task_clear_group_stop_pending(t);
+ task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK);
if (t != current && t->mm) {
sigaddset(&t->pending.signal, SIGKILL);
signal_wake_up(t, 1);
diff --git a/fs/proc/array.c b/fs/proc/array.c
index 9b45ee84fbcc..3a1dafd228d1 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -172,7 +172,7 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
task_tgid_nr_ns(rcu_dereference(p->real_parent), ns) : 0;
tpid = 0;
if (pid_alive(p)) {
- struct task_struct *tracer = tracehook_tracer_task(p);
+ struct task_struct *tracer = ptrace_parent(p);
if (tracer)
tpid = task_pid_nr_ns(tracer, ns);
}
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 8a84210ca080..9b19410f2e17 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -216,7 +216,7 @@ static struct mm_struct *__check_mem_permission(struct task_struct *task)
if (task_is_stopped_or_traced(task)) {
int match;
rcu_read_lock();
- match = (tracehook_tracer_task(task) == current);
+ match = (ptrace_parent(task) == current);
rcu_read_unlock();
if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
return mm;