diff options
author | David Howells <dhowells@redhat.com> | 2008-11-13 18:39:16 -0500 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2008-11-13 18:39:16 -0500 |
commit | b6dff3ec5e116e3af6f537d4caedcad6b9e5082a (patch) | |
tree | 9e76f972eb7ce9b84e0146c8e4126a3f86acb428 /fs/proc/base.c | |
parent | 15a2460ed0af7538ca8e6c610fe607a2cd9da142 (diff) |
CRED: Separate task security context from task_struct
Separate the task security context from task_struct. At this point, the
security data is temporarily embedded in the task_struct with two pointers
pointing to it.
Note that the Alpha arch is altered as it refers to (E)UID and (E)GID in
entry.S via asm-offsets.
With comment fixes Signed-off-by: Marc Dionne <marc.c.dionne@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: James Morris <jmorris@namei.org>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'fs/proc/base.c')
-rw-r--r-- | fs/proc/base.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c index 486cf3fe7139..6862b360c36c 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -1428,8 +1428,8 @@ static struct inode *proc_pid_make_inode(struct super_block * sb, struct task_st | |||
1428 | inode->i_uid = 0; | 1428 | inode->i_uid = 0; |
1429 | inode->i_gid = 0; | 1429 | inode->i_gid = 0; |
1430 | if (task_dumpable(task)) { | 1430 | if (task_dumpable(task)) { |
1431 | inode->i_uid = task->euid; | 1431 | inode->i_uid = task->cred->euid; |
1432 | inode->i_gid = task->egid; | 1432 | inode->i_gid = task->cred->egid; |
1433 | } | 1433 | } |
1434 | security_task_to_inode(task, inode); | 1434 | security_task_to_inode(task, inode); |
1435 | 1435 | ||
@@ -1454,8 +1454,8 @@ static int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat | |||
1454 | if (task) { | 1454 | if (task) { |
1455 | if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || | 1455 | if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || |
1456 | task_dumpable(task)) { | 1456 | task_dumpable(task)) { |
1457 | stat->uid = task->euid; | 1457 | stat->uid = task->cred->euid; |
1458 | stat->gid = task->egid; | 1458 | stat->gid = task->cred->egid; |
1459 | } | 1459 | } |
1460 | } | 1460 | } |
1461 | rcu_read_unlock(); | 1461 | rcu_read_unlock(); |
@@ -1486,8 +1486,8 @@ static int pid_revalidate(struct dentry *dentry, struct nameidata *nd) | |||
1486 | if (task) { | 1486 | if (task) { |
1487 | if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || | 1487 | if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || |
1488 | task_dumpable(task)) { | 1488 | task_dumpable(task)) { |
1489 | inode->i_uid = task->euid; | 1489 | inode->i_uid = task->cred->euid; |
1490 | inode->i_gid = task->egid; | 1490 | inode->i_gid = task->cred->egid; |
1491 | } else { | 1491 | } else { |
1492 | inode->i_uid = 0; | 1492 | inode->i_uid = 0; |
1493 | inode->i_gid = 0; | 1493 | inode->i_gid = 0; |
@@ -1658,8 +1658,8 @@ static int tid_fd_revalidate(struct dentry *dentry, struct nameidata *nd) | |||
1658 | rcu_read_unlock(); | 1658 | rcu_read_unlock(); |
1659 | put_files_struct(files); | 1659 | put_files_struct(files); |
1660 | if (task_dumpable(task)) { | 1660 | if (task_dumpable(task)) { |
1661 | inode->i_uid = task->euid; | 1661 | inode->i_uid = task->cred->euid; |
1662 | inode->i_gid = task->egid; | 1662 | inode->i_gid = task->cred->egid; |
1663 | } else { | 1663 | } else { |
1664 | inode->i_uid = 0; | 1664 | inode->i_uid = 0; |
1665 | inode->i_gid = 0; | 1665 | inode->i_gid = 0; |