diff options
Diffstat (limited to 'security/apparmor/ipc.c')
-rw-r--r-- | security/apparmor/ipc.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/security/apparmor/ipc.c b/security/apparmor/ipc.c index c51d2266587e..777ac1c47253 100644 --- a/security/apparmor/ipc.c +++ b/security/apparmor/ipc.c | |||
@@ -54,15 +54,14 @@ static int aa_audit_ptrace(struct aa_profile *profile, | |||
54 | 54 | ||
55 | /** | 55 | /** |
56 | * aa_may_ptrace - test if tracer task can trace the tracee | 56 | * aa_may_ptrace - test if tracer task can trace the tracee |
57 | * @tracer_task: task who will do the tracing (NOT NULL) | ||
58 | * @tracer: profile of the task doing the tracing (NOT NULL) | 57 | * @tracer: profile of the task doing the tracing (NOT NULL) |
59 | * @tracee: task to be traced | 58 | * @tracee: task to be traced |
60 | * @mode: whether PTRACE_MODE_READ || PTRACE_MODE_ATTACH | 59 | * @mode: whether PTRACE_MODE_READ || PTRACE_MODE_ATTACH |
61 | * | 60 | * |
62 | * Returns: %0 else error code if permission denied or error | 61 | * Returns: %0 else error code if permission denied or error |
63 | */ | 62 | */ |
64 | int aa_may_ptrace(struct task_struct *tracer_task, struct aa_profile *tracer, | 63 | int aa_may_ptrace(struct aa_profile *tracer, struct aa_profile *tracee, |
65 | struct aa_profile *tracee, unsigned int mode) | 64 | unsigned int mode) |
66 | { | 65 | { |
67 | /* TODO: currently only based on capability, not extended ptrace | 66 | /* TODO: currently only based on capability, not extended ptrace |
68 | * rules, | 67 | * rules, |
@@ -72,7 +71,7 @@ int aa_may_ptrace(struct task_struct *tracer_task, struct aa_profile *tracer, | |||
72 | if (unconfined(tracer) || tracer == tracee) | 71 | if (unconfined(tracer) || tracer == tracee) |
73 | return 0; | 72 | return 0; |
74 | /* log this capability request */ | 73 | /* log this capability request */ |
75 | return aa_capable(tracer_task, tracer, CAP_SYS_PTRACE, 1); | 74 | return aa_capable(tracer, CAP_SYS_PTRACE, 1); |
76 | } | 75 | } |
77 | 76 | ||
78 | /** | 77 | /** |
@@ -101,7 +100,7 @@ int aa_ptrace(struct task_struct *tracer, struct task_struct *tracee, | |||
101 | if (!unconfined(tracer_p)) { | 100 | if (!unconfined(tracer_p)) { |
102 | struct aa_profile *tracee_p = aa_get_task_profile(tracee); | 101 | struct aa_profile *tracee_p = aa_get_task_profile(tracee); |
103 | 102 | ||
104 | error = aa_may_ptrace(tracer, tracer_p, tracee_p, mode); | 103 | error = aa_may_ptrace(tracer_p, tracee_p, mode); |
105 | error = aa_audit_ptrace(tracer_p, tracee_p, error); | 104 | error = aa_audit_ptrace(tracer_p, tracee_p, error); |
106 | 105 | ||
107 | aa_put_profile(tracee_p); | 106 | aa_put_profile(tracee_p); |