X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=kernel%2Fcapability.c;h=c8d3c776203490b763c0cc65bd7444a29655804a;hb=4f44d8ba09280a7f0887ab60277940d6c72f2b43;hp=edb845a6e84ae5e649ece39e18384620c5dac74e;hpb=0cd43f83d381c4246a08cd775834833d6fd64805;p=powerpc.git diff --git a/kernel/capability.c b/kernel/capability.c index edb845a6e8..c8d3c77620 100644 --- a/kernel/capability.c +++ b/kernel/capability.c @@ -92,15 +92,17 @@ out: * cap_set_pg - set capabilities for all processes in a given process * group. We call this holding task_capability_lock and tasklist_lock. */ -static inline int cap_set_pg(int pgrp, kernel_cap_t *effective, +static inline int cap_set_pg(int pgrp_nr, kernel_cap_t *effective, kernel_cap_t *inheritable, kernel_cap_t *permitted) { struct task_struct *g, *target; int ret = -EPERM; int found = 0; + struct pid *pgrp; - do_each_task_pid(pgrp, PIDTYPE_PGID, g) { + pgrp = find_pid(pgrp_nr); + do_each_pid_task(pgrp, PIDTYPE_PGID, g) { target = g; while_each_thread(g, target) { if (!security_capset_check(target, effective, @@ -113,7 +115,7 @@ static inline int cap_set_pg(int pgrp, kernel_cap_t *effective, } found = 1; } - } while_each_task_pid(pgrp, PIDTYPE_PGID, g); + } while_each_pid_task(pgrp, PIDTYPE_PGID, g); if (!found) ret = 0;