git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[TCP]: cleanup of htcp (resend)
[pandora-kernel.git]
/
kernel
/
capability.c
diff --git
a/kernel/capability.c
b/kernel/capability.c
index
c7685ad
..
c8d3c77
100644
(file)
--- 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.
*/
* 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;
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,
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;
}
}
found = 1;
}
- } while_each_
task_pid
(pgrp, PIDTYPE_PGID, g);
+ } while_each_
pid_task
(pgrp, PIDTYPE_PGID, g);
if (!found)
ret = 0;
if (!found)
ret = 0;
@@
-133,7
+135,7
@@
static inline int cap_set_all(kernel_cap_t *effective,
int found = 0;
do_each_thread(g, target) {
int found = 0;
do_each_thread(g, target) {
- if (target == current ||
target->pid == 1
)
+ if (target == current ||
is_init(target)
)
continue;
found = 1;
if (security_capset_check(target, effective, inheritable,
continue;
found = 1;
if (security_capset_check(target, effective, inheritable,