mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-18 11:54:37 +08:00
constify security_path_{mkdir,mknod,symlink}
... as well as unix_mknod() and may_o_create() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
989f74e050
commit
d360775217
@ -2783,7 +2783,7 @@ static inline int open_to_namei_flags(int flag)
|
|||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int may_o_create(struct path *dir, struct dentry *dentry, umode_t mode)
|
static int may_o_create(const struct path *dir, struct dentry *dentry, umode_t mode)
|
||||||
{
|
{
|
||||||
int error = security_path_mknod(dir, dentry, mode, 0);
|
int error = security_path_mknod(dir, dentry, mode, 0);
|
||||||
if (error)
|
if (error)
|
||||||
|
@ -1361,13 +1361,13 @@ union security_list_options {
|
|||||||
|
|
||||||
#ifdef CONFIG_SECURITY_PATH
|
#ifdef CONFIG_SECURITY_PATH
|
||||||
int (*path_unlink)(const struct path *dir, struct dentry *dentry);
|
int (*path_unlink)(const struct path *dir, struct dentry *dentry);
|
||||||
int (*path_mkdir)(struct path *dir, struct dentry *dentry,
|
int (*path_mkdir)(const struct path *dir, struct dentry *dentry,
|
||||||
umode_t mode);
|
umode_t mode);
|
||||||
int (*path_rmdir)(const struct path *dir, struct dentry *dentry);
|
int (*path_rmdir)(const struct path *dir, struct dentry *dentry);
|
||||||
int (*path_mknod)(struct path *dir, struct dentry *dentry,
|
int (*path_mknod)(const struct path *dir, struct dentry *dentry,
|
||||||
umode_t mode, unsigned int dev);
|
umode_t mode, unsigned int dev);
|
||||||
int (*path_truncate)(const struct path *path);
|
int (*path_truncate)(const struct path *path);
|
||||||
int (*path_symlink)(struct path *dir, struct dentry *dentry,
|
int (*path_symlink)(const struct path *dir, struct dentry *dentry,
|
||||||
const char *old_name);
|
const char *old_name);
|
||||||
int (*path_link)(struct dentry *old_dentry, struct path *new_dir,
|
int (*path_link)(struct dentry *old_dentry, struct path *new_dir,
|
||||||
struct dentry *new_dentry);
|
struct dentry *new_dentry);
|
||||||
|
@ -1443,12 +1443,12 @@ static inline void security_skb_classify_flow(struct sk_buff *skb, struct flowi
|
|||||||
|
|
||||||
#ifdef CONFIG_SECURITY_PATH
|
#ifdef CONFIG_SECURITY_PATH
|
||||||
int security_path_unlink(const struct path *dir, struct dentry *dentry);
|
int security_path_unlink(const struct path *dir, struct dentry *dentry);
|
||||||
int security_path_mkdir(struct path *dir, struct dentry *dentry, umode_t mode);
|
int security_path_mkdir(const struct path *dir, struct dentry *dentry, umode_t mode);
|
||||||
int security_path_rmdir(const struct path *dir, struct dentry *dentry);
|
int security_path_rmdir(const struct path *dir, struct dentry *dentry);
|
||||||
int security_path_mknod(struct path *dir, struct dentry *dentry, umode_t mode,
|
int security_path_mknod(const struct path *dir, struct dentry *dentry, umode_t mode,
|
||||||
unsigned int dev);
|
unsigned int dev);
|
||||||
int security_path_truncate(const struct path *path);
|
int security_path_truncate(const struct path *path);
|
||||||
int security_path_symlink(struct path *dir, struct dentry *dentry,
|
int security_path_symlink(const struct path *dir, struct dentry *dentry,
|
||||||
const char *old_name);
|
const char *old_name);
|
||||||
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
|
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
|
||||||
struct dentry *new_dentry);
|
struct dentry *new_dentry);
|
||||||
@ -1464,7 +1464,7 @@ static inline int security_path_unlink(const struct path *dir, struct dentry *de
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int security_path_mkdir(struct path *dir, struct dentry *dentry,
|
static inline int security_path_mkdir(const struct path *dir, struct dentry *dentry,
|
||||||
umode_t mode)
|
umode_t mode)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
@ -1475,7 +1475,7 @@ static inline int security_path_rmdir(const struct path *dir, struct dentry *den
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int security_path_mknod(struct path *dir, struct dentry *dentry,
|
static inline int security_path_mknod(const struct path *dir, struct dentry *dentry,
|
||||||
umode_t mode, unsigned int dev)
|
umode_t mode, unsigned int dev)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
@ -1486,7 +1486,7 @@ static inline int security_path_truncate(const struct path *path)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int security_path_symlink(struct path *dir, struct dentry *dentry,
|
static inline int security_path_symlink(const struct path *dir, struct dentry *dentry,
|
||||||
const char *old_name)
|
const char *old_name)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -953,7 +953,7 @@ fail:
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int unix_mknod(struct dentry *dentry, struct path *path, umode_t mode,
|
static int unix_mknod(struct dentry *dentry, const struct path *path, umode_t mode,
|
||||||
struct path *res)
|
struct path *res)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
@ -250,7 +250,7 @@ static int apparmor_path_unlink(const struct path *dir, struct dentry *dentry)
|
|||||||
return common_perm_rm(OP_UNLINK, dir, dentry, AA_MAY_DELETE);
|
return common_perm_rm(OP_UNLINK, dir, dentry, AA_MAY_DELETE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int apparmor_path_mkdir(struct path *dir, struct dentry *dentry,
|
static int apparmor_path_mkdir(const struct path *dir, struct dentry *dentry,
|
||||||
umode_t mode)
|
umode_t mode)
|
||||||
{
|
{
|
||||||
return common_perm_create(OP_MKDIR, dir, dentry, AA_MAY_CREATE,
|
return common_perm_create(OP_MKDIR, dir, dentry, AA_MAY_CREATE,
|
||||||
@ -262,7 +262,7 @@ static int apparmor_path_rmdir(const struct path *dir, struct dentry *dentry)
|
|||||||
return common_perm_rm(OP_RMDIR, dir, dentry, AA_MAY_DELETE);
|
return common_perm_rm(OP_RMDIR, dir, dentry, AA_MAY_DELETE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int apparmor_path_mknod(struct path *dir, struct dentry *dentry,
|
static int apparmor_path_mknod(const struct path *dir, struct dentry *dentry,
|
||||||
umode_t mode, unsigned int dev)
|
umode_t mode, unsigned int dev)
|
||||||
{
|
{
|
||||||
return common_perm_create(OP_MKNOD, dir, dentry, AA_MAY_CREATE, mode);
|
return common_perm_create(OP_MKNOD, dir, dentry, AA_MAY_CREATE, mode);
|
||||||
@ -273,7 +273,7 @@ static int apparmor_path_truncate(const struct path *path)
|
|||||||
return common_perm_path(OP_TRUNC, path, MAY_WRITE | AA_MAY_META_WRITE);
|
return common_perm_path(OP_TRUNC, path, MAY_WRITE | AA_MAY_META_WRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int apparmor_path_symlink(struct path *dir, struct dentry *dentry,
|
static int apparmor_path_symlink(const struct path *dir, struct dentry *dentry,
|
||||||
const char *old_name)
|
const char *old_name)
|
||||||
{
|
{
|
||||||
return common_perm_create(OP_SYMLINK, dir, dentry, AA_MAY_CREATE,
|
return common_perm_create(OP_SYMLINK, dir, dentry, AA_MAY_CREATE,
|
||||||
|
@ -410,7 +410,7 @@ int security_old_inode_init_security(struct inode *inode, struct inode *dir,
|
|||||||
EXPORT_SYMBOL(security_old_inode_init_security);
|
EXPORT_SYMBOL(security_old_inode_init_security);
|
||||||
|
|
||||||
#ifdef CONFIG_SECURITY_PATH
|
#ifdef CONFIG_SECURITY_PATH
|
||||||
int security_path_mknod(struct path *dir, struct dentry *dentry, umode_t mode,
|
int security_path_mknod(const struct path *dir, struct dentry *dentry, umode_t mode,
|
||||||
unsigned int dev)
|
unsigned int dev)
|
||||||
{
|
{
|
||||||
if (unlikely(IS_PRIVATE(d_backing_inode(dir->dentry))))
|
if (unlikely(IS_PRIVATE(d_backing_inode(dir->dentry))))
|
||||||
@ -419,7 +419,7 @@ int security_path_mknod(struct path *dir, struct dentry *dentry, umode_t mode,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(security_path_mknod);
|
EXPORT_SYMBOL(security_path_mknod);
|
||||||
|
|
||||||
int security_path_mkdir(struct path *dir, struct dentry *dentry, umode_t mode)
|
int security_path_mkdir(const struct path *dir, struct dentry *dentry, umode_t mode)
|
||||||
{
|
{
|
||||||
if (unlikely(IS_PRIVATE(d_backing_inode(dir->dentry))))
|
if (unlikely(IS_PRIVATE(d_backing_inode(dir->dentry))))
|
||||||
return 0;
|
return 0;
|
||||||
@ -442,7 +442,7 @@ int security_path_unlink(const struct path *dir, struct dentry *dentry)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(security_path_unlink);
|
EXPORT_SYMBOL(security_path_unlink);
|
||||||
|
|
||||||
int security_path_symlink(struct path *dir, struct dentry *dentry,
|
int security_path_symlink(const struct path *dir, struct dentry *dentry,
|
||||||
const char *old_name)
|
const char *old_name)
|
||||||
{
|
{
|
||||||
if (unlikely(IS_PRIVATE(d_backing_inode(dir->dentry))))
|
if (unlikely(IS_PRIVATE(d_backing_inode(dir->dentry))))
|
||||||
|
@ -178,7 +178,7 @@ static int tomoyo_path_unlink(const struct path *parent, struct dentry *dentry)
|
|||||||
*
|
*
|
||||||
* Returns 0 on success, negative value otherwise.
|
* Returns 0 on success, negative value otherwise.
|
||||||
*/
|
*/
|
||||||
static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
|
static int tomoyo_path_mkdir(const struct path *parent, struct dentry *dentry,
|
||||||
umode_t mode)
|
umode_t mode)
|
||||||
{
|
{
|
||||||
struct path path = { parent->mnt, dentry };
|
struct path path = { parent->mnt, dentry };
|
||||||
@ -209,7 +209,7 @@ static int tomoyo_path_rmdir(const struct path *parent, struct dentry *dentry)
|
|||||||
*
|
*
|
||||||
* Returns 0 on success, negative value otherwise.
|
* Returns 0 on success, negative value otherwise.
|
||||||
*/
|
*/
|
||||||
static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
|
static int tomoyo_path_symlink(const struct path *parent, struct dentry *dentry,
|
||||||
const char *old_name)
|
const char *old_name)
|
||||||
{
|
{
|
||||||
struct path path = { parent->mnt, dentry };
|
struct path path = { parent->mnt, dentry };
|
||||||
@ -226,7 +226,7 @@ static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
|
|||||||
*
|
*
|
||||||
* Returns 0 on success, negative value otherwise.
|
* Returns 0 on success, negative value otherwise.
|
||||||
*/
|
*/
|
||||||
static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
|
static int tomoyo_path_mknod(const struct path *parent, struct dentry *dentry,
|
||||||
umode_t mode, unsigned int dev)
|
umode_t mode, unsigned int dev)
|
||||||
{
|
{
|
||||||
struct path path = { parent->mnt, dentry };
|
struct path path = { parent->mnt, dentry };
|
||||||
|
Loading…
Reference in New Issue
Block a user