new helper: file_inode(file)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -1528,7 +1528,7 @@ static int file_has_perm(const struct cred *cred,
|
||||
u32 av)
|
||||
{
|
||||
struct file_security_struct *fsec = file->f_security;
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct common_audit_data ad;
|
||||
u32 sid = cred_sid(cred);
|
||||
int rc;
|
||||
@@ -1957,7 +1957,7 @@ static int selinux_bprm_set_creds(struct linux_binprm *bprm)
|
||||
struct task_security_struct *new_tsec;
|
||||
struct inode_security_struct *isec;
|
||||
struct common_audit_data ad;
|
||||
struct inode *inode = bprm->file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(bprm->file);
|
||||
int rc;
|
||||
|
||||
rc = cap_bprm_set_creds(bprm);
|
||||
@@ -2929,7 +2929,7 @@ static void selinux_inode_getsecid(const struct inode *inode, u32 *secid)
|
||||
static int selinux_revalidate_file_permission(struct file *file, int mask)
|
||||
{
|
||||
const struct cred *cred = current_cred();
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
|
||||
/* file_mask_to_av won't add FILE__WRITE if MAY_APPEND is set */
|
||||
if ((file->f_flags & O_APPEND) && (mask & MAY_WRITE))
|
||||
@@ -2941,7 +2941,7 @@ static int selinux_revalidate_file_permission(struct file *file, int mask)
|
||||
|
||||
static int selinux_file_permission(struct file *file, int mask)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct file_security_struct *fsec = file->f_security;
|
||||
struct inode_security_struct *isec = inode->i_security;
|
||||
u32 sid = current_sid();
|
||||
@@ -3218,7 +3218,7 @@ static int selinux_file_open(struct file *file, const struct cred *cred)
|
||||
struct inode_security_struct *isec;
|
||||
|
||||
fsec = file->f_security;
|
||||
isec = file->f_path.dentry->d_inode->i_security;
|
||||
isec = file_inode(file)->i_security;
|
||||
/*
|
||||
* Save inode label and policy sequence number
|
||||
* at open-time so that selinux_file_permission
|
||||
|
@@ -202,7 +202,7 @@ static ssize_t sel_read_handle_unknown(struct file *filp, char __user *buf,
|
||||
{
|
||||
char tmpbuf[TMPBUFLEN];
|
||||
ssize_t length;
|
||||
ino_t ino = filp->f_path.dentry->d_inode->i_ino;
|
||||
ino_t ino = file_inode(filp)->i_ino;
|
||||
int handle_unknown = (ino == SEL_REJECT_UNKNOWN) ?
|
||||
security_get_reject_unknown() : !security_get_allow_unknown();
|
||||
|
||||
@@ -671,7 +671,7 @@ static ssize_t (*write_op[])(struct file *, char *, size_t) = {
|
||||
|
||||
static ssize_t selinux_transaction_write(struct file *file, const char __user *buf, size_t size, loff_t *pos)
|
||||
{
|
||||
ino_t ino = file->f_path.dentry->d_inode->i_ino;
|
||||
ino_t ino = file_inode(file)->i_ino;
|
||||
char *data;
|
||||
ssize_t rv;
|
||||
|
||||
@@ -1042,8 +1042,7 @@ static ssize_t sel_read_bool(struct file *filep, char __user *buf,
|
||||
ssize_t length;
|
||||
ssize_t ret;
|
||||
int cur_enforcing;
|
||||
struct inode *inode = filep->f_path.dentry->d_inode;
|
||||
unsigned index = inode->i_ino & SEL_INO_MASK;
|
||||
unsigned index = file_inode(filep)->i_ino & SEL_INO_MASK;
|
||||
const char *name = filep->f_path.dentry->d_name.name;
|
||||
|
||||
mutex_lock(&sel_mutex);
|
||||
@@ -1077,8 +1076,7 @@ static ssize_t sel_write_bool(struct file *filep, const char __user *buf,
|
||||
char *page = NULL;
|
||||
ssize_t length;
|
||||
int new_value;
|
||||
struct inode *inode = filep->f_path.dentry->d_inode;
|
||||
unsigned index = inode->i_ino & SEL_INO_MASK;
|
||||
unsigned index = file_inode(filep)->i_ino & SEL_INO_MASK;
|
||||
const char *name = filep->f_path.dentry->d_name.name;
|
||||
|
||||
mutex_lock(&sel_mutex);
|
||||
@@ -1486,13 +1484,11 @@ static int sel_make_avc_files(struct dentry *dir)
|
||||
static ssize_t sel_read_initcon(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode *inode;
|
||||
char *con;
|
||||
u32 sid, len;
|
||||
ssize_t ret;
|
||||
|
||||
inode = file->f_path.dentry->d_inode;
|
||||
sid = inode->i_ino&SEL_INO_MASK;
|
||||
sid = file_inode(file)->i_ino&SEL_INO_MASK;
|
||||
ret = security_sid_to_context(sid, &con, &len);
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -1553,7 +1549,7 @@ static inline u32 sel_ino_to_perm(unsigned long ino)
|
||||
static ssize_t sel_read_class(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
unsigned long ino = file->f_path.dentry->d_inode->i_ino;
|
||||
unsigned long ino = file_inode(file)->i_ino;
|
||||
char res[TMPBUFLEN];
|
||||
ssize_t len = snprintf(res, sizeof(res), "%d", sel_ino_to_class(ino));
|
||||
return simple_read_from_buffer(buf, count, ppos, res, len);
|
||||
@@ -1567,7 +1563,7 @@ static const struct file_operations sel_class_ops = {
|
||||
static ssize_t sel_read_perm(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
unsigned long ino = file->f_path.dentry->d_inode->i_ino;
|
||||
unsigned long ino = file_inode(file)->i_ino;
|
||||
char res[TMPBUFLEN];
|
||||
ssize_t len = snprintf(res, sizeof(res), "%d", sel_ino_to_perm(ino));
|
||||
return simple_read_from_buffer(buf, count, ppos, res, len);
|
||||
@@ -1584,7 +1580,7 @@ static ssize_t sel_read_policycap(struct file *file, char __user *buf,
|
||||
int value;
|
||||
char tmpbuf[TMPBUFLEN];
|
||||
ssize_t length;
|
||||
unsigned long i_ino = file->f_path.dentry->d_inode->i_ino;
|
||||
unsigned long i_ino = file_inode(file)->i_ino;
|
||||
|
||||
value = security_policycap_supported(i_ino & SEL_INO_MASK);
|
||||
length = scnprintf(tmpbuf, TMPBUFLEN, "%d", value);
|
||||
|
Reference in New Issue
Block a user