diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/capability.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/kernel/capability.c b/kernel/capability.c index 774cf612d8c5..5e2c835aba65 100644 --- a/kernel/capability.c +++ b/kernel/capability.c @@ -54,11 +54,14 @@ asmlinkage long sys_capget(cap_user_header_t header, cap_user_data_t dataptr) spin_lock(&task_capability_lock); read_lock(&tasklist_lock); - target = find_task_by_pid(pid); - if (!target) { - ret = -ESRCH; - goto out; - } + if (pid && pid != current->pid) { + target = find_task_by_pid(pid); + if (!target) { + ret = -ESRCH; + goto out; + } + } else + target = current; data.permitted = cap_t(target->cap_permitted); data.inheritable = cap_t(target->cap_inheritable); |
