|
@@ -1120,8 +1120,8 @@ static int file_has_perm(struct task_struct *tsk,
|
|
|
{
|
|
|
struct task_security_struct *tsec = tsk->security;
|
|
|
struct file_security_struct *fsec = file->f_security;
|
|
|
- struct vfsmount *mnt = file->f_vfsmnt;
|
|
|
- struct dentry *dentry = file->f_dentry;
|
|
|
+ struct vfsmount *mnt = file->f_path.mnt;
|
|
|
+ struct dentry *dentry = file->f_path.dentry;
|
|
|
struct inode *inode = dentry->d_inode;
|
|
|
struct avc_audit_data ad;
|
|
|
int rc;
|
|
@@ -1581,7 +1581,7 @@ static int selinux_bprm_alloc_security(struct linux_binprm *bprm)
|
|
|
static int selinux_bprm_set_security(struct linux_binprm *bprm)
|
|
|
{
|
|
|
struct task_security_struct *tsec;
|
|
|
- struct inode *inode = bprm->file->f_dentry->d_inode;
|
|
|
+ struct inode *inode = bprm->file->f_path.dentry->d_inode;
|
|
|
struct inode_security_struct *isec;
|
|
|
struct bprm_security_struct *bsec;
|
|
|
u32 newsid;
|
|
@@ -1621,10 +1621,10 @@ static int selinux_bprm_set_security(struct linux_binprm *bprm)
|
|
|
}
|
|
|
|
|
|
AVC_AUDIT_DATA_INIT(&ad, FS);
|
|
|
- ad.u.fs.mnt = bprm->file->f_vfsmnt;
|
|
|
- ad.u.fs.dentry = bprm->file->f_dentry;
|
|
|
+ ad.u.fs.mnt = bprm->file->f_path.mnt;
|
|
|
+ ad.u.fs.dentry = bprm->file->f_path.dentry;
|
|
|
|
|
|
- if (bprm->file->f_vfsmnt->mnt_flags & MNT_NOSUID)
|
|
|
+ if (bprm->file->f_path.mnt->mnt_flags & MNT_NOSUID)
|
|
|
newsid = tsec->sid;
|
|
|
|
|
|
if (tsec->sid == newsid) {
|
|
@@ -1708,7 +1708,7 @@ static inline void flush_unauthorized_files(struct files_struct * files)
|
|
|
than using file_has_perm, as this particular open
|
|
|
file may belong to another process and we are only
|
|
|
interested in the inode-based check here. */
|
|
|
- struct inode *inode = file->f_dentry->d_inode;
|
|
|
+ struct inode *inode = file->f_path.dentry->d_inode;
|
|
|
if (inode_has_perm(current, inode,
|
|
|
FILE__READ | FILE__WRITE, NULL)) {
|
|
|
drop_tty = 1;
|
|
@@ -2420,7 +2420,7 @@ static int selinux_inode_listsecurity(struct inode *inode, char *buffer, size_t
|
|
|
static int selinux_file_permission(struct file *file, int mask)
|
|
|
{
|
|
|
int rc;
|
|
|
- struct inode *inode = file->f_dentry->d_inode;
|
|
|
+ struct inode *inode = file->f_path.dentry->d_inode;
|
|
|
|
|
|
if (!mask) {
|
|
|
/* No permission to check. Existence test. */
|
|
@@ -2597,7 +2597,7 @@ static int selinux_file_fcntl(struct file *file, unsigned int cmd,
|
|
|
|
|
|
switch (cmd) {
|
|
|
case F_SETFL:
|
|
|
- if (!file->f_dentry || !file->f_dentry->d_inode) {
|
|
|
+ if (!file->f_path.dentry || !file->f_path.dentry->d_inode) {
|
|
|
err = -EINVAL;
|
|
|
break;
|
|
|
}
|
|
@@ -2623,7 +2623,7 @@ static int selinux_file_fcntl(struct file *file, unsigned int cmd,
|
|
|
case F_SETLK64:
|
|
|
case F_SETLKW64:
|
|
|
#endif
|
|
|
- if (!file->f_dentry || !file->f_dentry->d_inode) {
|
|
|
+ if (!file->f_path.dentry || !file->f_path.dentry->d_inode) {
|
|
|
err = -EINVAL;
|
|
|
break;
|
|
|
}
|