diff options
| author | Josef Sipek <jsipek@fsl.cs.sunysb.edu> | 2006-12-08 05:37:38 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-08 11:28:49 -0500 |
| commit | 3d5ff529ea222461a5fa3c4df05cbdc5eb56864d (patch) | |
| tree | 28ec8432eb9212bc04e345c2e85addc132f3a34e /security | |
| parent | 7ac6207b2a6a5b828bc333f2530a3bd48197af3e (diff) | |
[PATCH] struct path: convert selinux
Signed-off-by: Josef Sipek <jsipek@fsl.cs.sunysb.edu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'security')
| -rw-r--r-- | security/selinux/hooks.c | 20 | ||||
| -rw-r--r-- | security/selinux/selinuxfs.c | 8 |
2 files changed, 14 insertions, 14 deletions
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index f5df8c70a9b5..3753416eb9b9 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
| @@ -1120,8 +1120,8 @@ static int file_has_perm(struct task_struct *tsk, | |||
| 1120 | { | 1120 | { |
| 1121 | struct task_security_struct *tsec = tsk->security; | 1121 | struct task_security_struct *tsec = tsk->security; |
| 1122 | struct file_security_struct *fsec = file->f_security; | 1122 | struct file_security_struct *fsec = file->f_security; |
| 1123 | struct vfsmount *mnt = file->f_vfsmnt; | 1123 | struct vfsmount *mnt = file->f_path.mnt; |
| 1124 | struct dentry *dentry = file->f_dentry; | 1124 | struct dentry *dentry = file->f_path.dentry; |
| 1125 | struct inode *inode = dentry->d_inode; | 1125 | struct inode *inode = dentry->d_inode; |
| 1126 | struct avc_audit_data ad; | 1126 | struct avc_audit_data ad; |
| 1127 | int rc; | 1127 | int rc; |
| @@ -1581,7 +1581,7 @@ static int selinux_bprm_alloc_security(struct linux_binprm *bprm) | |||
| 1581 | static int selinux_bprm_set_security(struct linux_binprm *bprm) | 1581 | static int selinux_bprm_set_security(struct linux_binprm *bprm) |
| 1582 | { | 1582 | { |
| 1583 | struct task_security_struct *tsec; | 1583 | struct task_security_struct *tsec; |
| 1584 | struct inode *inode = bprm->file->f_dentry->d_inode; | 1584 | struct inode *inode = bprm->file->f_path.dentry->d_inode; |
| 1585 | struct inode_security_struct *isec; | 1585 | struct inode_security_struct *isec; |
| 1586 | struct bprm_security_struct *bsec; | 1586 | struct bprm_security_struct *bsec; |
| 1587 | u32 newsid; | 1587 | u32 newsid; |
| @@ -1621,10 +1621,10 @@ static int selinux_bprm_set_security(struct linux_binprm *bprm) | |||
| 1621 | } | 1621 | } |
| 1622 | 1622 | ||
| 1623 | AVC_AUDIT_DATA_INIT(&ad, FS); | 1623 | AVC_AUDIT_DATA_INIT(&ad, FS); |
| 1624 | ad.u.fs.mnt = bprm->file->f_vfsmnt; | 1624 | ad.u.fs.mnt = bprm->file->f_path.mnt; |
| 1625 | ad.u.fs.dentry = bprm->file->f_dentry; | 1625 | ad.u.fs.dentry = bprm->file->f_path.dentry; |
| 1626 | 1626 | ||
| 1627 | if (bprm->file->f_vfsmnt->mnt_flags & MNT_NOSUID) | 1627 | if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID) |
| 1628 | newsid = tsec->sid; | 1628 | newsid = tsec->sid; |
| 1629 | 1629 | ||
| 1630 | if (tsec->sid == newsid) { | 1630 | if (tsec->sid == newsid) { |
| @@ -1708,7 +1708,7 @@ static inline void flush_unauthorized_files(struct files_struct * files) | |||
| 1708 | than using file_has_perm, as this particular open | 1708 | than using file_has_perm, as this particular open |
| 1709 | file may belong to another process and we are only | 1709 | file may belong to another process and we are only |
| 1710 | interested in the inode-based check here. */ | 1710 | interested in the inode-based check here. */ |
| 1711 | struct inode *inode = file->f_dentry->d_inode; | 1711 | struct inode *inode = file->f_path.dentry->d_inode; |
| 1712 | if (inode_has_perm(current, inode, | 1712 | if (inode_has_perm(current, inode, |
| 1713 | FILE__READ | FILE__WRITE, NULL)) { | 1713 | FILE__READ | FILE__WRITE, NULL)) { |
| 1714 | drop_tty = 1; | 1714 | drop_tty = 1; |
| @@ -2420,7 +2420,7 @@ static int selinux_inode_listsecurity(struct inode *inode, char *buffer, size_t | |||
| 2420 | static int selinux_file_permission(struct file *file, int mask) | 2420 | static int selinux_file_permission(struct file *file, int mask) |
| 2421 | { | 2421 | { |
| 2422 | int rc; | 2422 | int rc; |
| 2423 | struct inode *inode = file->f_dentry->d_inode; | 2423 | struct inode *inode = file->f_path.dentry->d_inode; |
| 2424 | 2424 | ||
| 2425 | if (!mask) { | 2425 | if (!mask) { |
| 2426 | /* No permission to check. Existence test. */ | 2426 | /* No permission to check. Existence test. */ |
| @@ -2597,7 +2597,7 @@ static int selinux_file_fcntl(struct file *file, unsigned int cmd, | |||
| 2597 | 2597 | ||
| 2598 | switch (cmd) { | 2598 | switch (cmd) { |
| 2599 | case F_SETFL: | 2599 | case F_SETFL: |
| 2600 | if (!file->f_dentry || !file->f_dentry->d_inode) { | 2600 | if (!file->f_path.dentry || !file->f_path.dentry->d_inode) { |
| 2601 | err = -EINVAL; | 2601 | err = -EINVAL; |
| 2602 | break; | 2602 | break; |
| 2603 | } | 2603 | } |
| @@ -2623,7 +2623,7 @@ static int selinux_file_fcntl(struct file *file, unsigned int cmd, | |||
| 2623 | case F_SETLK64: | 2623 | case F_SETLK64: |
| 2624 | case F_SETLKW64: | 2624 | case F_SETLKW64: |
| 2625 | #endif | 2625 | #endif |
| 2626 | if (!file->f_dentry || !file->f_dentry->d_inode) { | 2626 | if (!file->f_path.dentry || !file->f_path.dentry->d_inode) { |
| 2627 | err = -EINVAL; | 2627 | err = -EINVAL; |
| 2628 | break; | 2628 | break; |
| 2629 | } | 2629 | } |
diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c index cd244419c980..c8bf6e172f6e 100644 --- a/security/selinux/selinuxfs.c +++ b/security/selinux/selinuxfs.c | |||
| @@ -448,7 +448,7 @@ static ssize_t (*write_op[])(struct file *, char *, size_t) = { | |||
| 448 | 448 | ||
| 449 | static ssize_t selinux_transaction_write(struct file *file, const char __user *buf, size_t size, loff_t *pos) | 449 | static ssize_t selinux_transaction_write(struct file *file, const char __user *buf, size_t size, loff_t *pos) |
| 450 | { | 450 | { |
| 451 | ino_t ino = file->f_dentry->d_inode->i_ino; | 451 | ino_t ino = file->f_path.dentry->d_inode->i_ino; |
| 452 | char *data; | 452 | char *data; |
| 453 | ssize_t rv; | 453 | ssize_t rv; |
| 454 | 454 | ||
| @@ -805,7 +805,7 @@ static ssize_t sel_read_bool(struct file *filep, char __user *buf, | |||
| 805 | goto out; | 805 | goto out; |
| 806 | } | 806 | } |
| 807 | 807 | ||
| 808 | inode = filep->f_dentry->d_inode; | 808 | inode = filep->f_path.dentry->d_inode; |
| 809 | cur_enforcing = security_get_bool_value(inode->i_ino - BOOL_INO_OFFSET); | 809 | cur_enforcing = security_get_bool_value(inode->i_ino - BOOL_INO_OFFSET); |
| 810 | if (cur_enforcing < 0) { | 810 | if (cur_enforcing < 0) { |
| 811 | ret = cur_enforcing; | 811 | ret = cur_enforcing; |
| @@ -864,7 +864,7 @@ static ssize_t sel_write_bool(struct file *filep, const char __user *buf, | |||
| 864 | if (new_value) | 864 | if (new_value) |
| 865 | new_value = 1; | 865 | new_value = 1; |
| 866 | 866 | ||
| 867 | inode = filep->f_dentry->d_inode; | 867 | inode = filep->f_path.dentry->d_inode; |
| 868 | bool_pending_values[inode->i_ino - BOOL_INO_OFFSET] = new_value; | 868 | bool_pending_values[inode->i_ino - BOOL_INO_OFFSET] = new_value; |
| 869 | length = count; | 869 | length = count; |
| 870 | 870 | ||
| @@ -965,7 +965,7 @@ static void sel_remove_bools(struct dentry *de) | |||
| 965 | file_list_lock(); | 965 | file_list_lock(); |
| 966 | list_for_each(p, &sb->s_files) { | 966 | list_for_each(p, &sb->s_files) { |
| 967 | struct file * filp = list_entry(p, struct file, f_u.fu_list); | 967 | struct file * filp = list_entry(p, struct file, f_u.fu_list); |
| 968 | struct dentry * dentry = filp->f_dentry; | 968 | struct dentry * dentry = filp->f_path.dentry; |
| 969 | 969 | ||
| 970 | if (dentry->d_parent != de) { | 970 | if (dentry->d_parent != de) { |
| 971 | continue; | 971 | continue; |
