Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
3f7036a0
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
3f7036a0
编写于
3月 08, 2015
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
switch security_inode_getattr() to struct path *
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
22473862
变更
10
显示空白变更内容
内联
并排
Showing
10 changed file
with
24 addition
and
35 deletion
+24
-35
fs/stat.c
fs/stat.c
+1
-1
include/linux/security.h
include/linux/security.h
+3
-4
security/apparmor/lsm.c
security/apparmor/lsm.c
+3
-3
security/capability.c
security/capability.c
+1
-1
security/security.c
security/security.c
+3
-3
security/selinux/hooks.c
security/selinux/hooks.c
+3
-9
security/smack/smack_lsm.c
security/smack/smack_lsm.c
+5
-8
security/tomoyo/common.h
security/tomoyo/common.h
+1
-1
security/tomoyo/file.c
security/tomoyo/file.c
+2
-2
security/tomoyo/tomoyo.c
security/tomoyo/tomoyo.c
+2
-3
未找到文件。
fs/stat.c
浏览文件 @
3f7036a0
...
...
@@ -66,7 +66,7 @@ int vfs_getattr(struct path *path, struct kstat *stat)
{
int
retval
;
retval
=
security_inode_getattr
(
path
->
mnt
,
path
->
dentry
);
retval
=
security_inode_getattr
(
path
);
if
(
retval
)
return
retval
;
return
vfs_getattr_nosec
(
path
,
stat
);
...
...
include/linux/security.h
浏览文件 @
3f7036a0
...
...
@@ -1556,7 +1556,7 @@ struct security_operations {
int
(
*
inode_follow_link
)
(
struct
dentry
*
dentry
,
struct
nameidata
*
nd
);
int
(
*
inode_permission
)
(
struct
inode
*
inode
,
int
mask
);
int
(
*
inode_setattr
)
(
struct
dentry
*
dentry
,
struct
iattr
*
attr
);
int
(
*
inode_getattr
)
(
struct
vfsmount
*
mnt
,
struct
dentry
*
dentry
);
int
(
*
inode_getattr
)
(
const
struct
path
*
path
);
int
(
*
inode_setxattr
)
(
struct
dentry
*
dentry
,
const
char
*
name
,
const
void
*
value
,
size_t
size
,
int
flags
);
void
(
*
inode_post_setxattr
)
(
struct
dentry
*
dentry
,
const
char
*
name
,
...
...
@@ -1843,7 +1843,7 @@ int security_inode_readlink(struct dentry *dentry);
int
security_inode_follow_link
(
struct
dentry
*
dentry
,
struct
nameidata
*
nd
);
int
security_inode_permission
(
struct
inode
*
inode
,
int
mask
);
int
security_inode_setattr
(
struct
dentry
*
dentry
,
struct
iattr
*
attr
);
int
security_inode_getattr
(
struct
vfsmount
*
mnt
,
struct
dentry
*
dentry
);
int
security_inode_getattr
(
const
struct
path
*
path
);
int
security_inode_setxattr
(
struct
dentry
*
dentry
,
const
char
*
name
,
const
void
*
value
,
size_t
size
,
int
flags
);
void
security_inode_post_setxattr
(
struct
dentry
*
dentry
,
const
char
*
name
,
...
...
@@ -2259,8 +2259,7 @@ static inline int security_inode_setattr(struct dentry *dentry,
return
0
;
}
static
inline
int
security_inode_getattr
(
struct
vfsmount
*
mnt
,
struct
dentry
*
dentry
)
static
inline
int
security_inode_getattr
(
const
struct
path
*
path
)
{
return
0
;
}
...
...
security/apparmor/lsm.c
浏览文件 @
3f7036a0
...
...
@@ -364,12 +364,12 @@ static int apparmor_path_chown(struct path *path, kuid_t uid, kgid_t gid)
return
common_perm
(
OP_CHOWN
,
path
,
AA_MAY_CHOWN
,
&
cond
);
}
static
int
apparmor_inode_getattr
(
struct
vfsmount
*
mnt
,
struct
dentry
*
dentry
)
static
int
apparmor_inode_getattr
(
const
struct
path
*
path
)
{
if
(
!
mediated_filesystem
(
dentry
))
if
(
!
mediated_filesystem
(
path
->
dentry
))
return
0
;
return
common_perm_mnt_dentry
(
OP_GETATTR
,
mnt
,
dentry
,
return
common_perm_mnt_dentry
(
OP_GETATTR
,
path
->
mnt
,
path
->
dentry
,
AA_MAY_META_READ
);
}
...
...
security/capability.c
浏览文件 @
3f7036a0
...
...
@@ -225,7 +225,7 @@ static int cap_inode_setattr(struct dentry *dentry, struct iattr *iattr)
return
0
;
}
static
int
cap_inode_getattr
(
struct
vfsmount
*
mnt
,
struct
dentry
*
dentry
)
static
int
cap_inode_getattr
(
const
struct
path
*
path
)
{
return
0
;
}
...
...
security/security.c
浏览文件 @
3f7036a0
...
...
@@ -608,11 +608,11 @@ int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
}
EXPORT_SYMBOL_GPL
(
security_inode_setattr
);
int
security_inode_getattr
(
struct
vfsmount
*
mnt
,
struct
dentry
*
dentry
)
int
security_inode_getattr
(
const
struct
path
*
path
)
{
if
(
unlikely
(
IS_PRIVATE
(
dentry
->
d_inode
)))
if
(
unlikely
(
IS_PRIVATE
(
path
->
dentry
->
d_inode
)))
return
0
;
return
security_ops
->
inode_getattr
(
mnt
,
dentry
);
return
security_ops
->
inode_getattr
(
path
);
}
int
security_inode_setxattr
(
struct
dentry
*
dentry
,
const
char
*
name
,
...
...
security/selinux/hooks.c
浏览文件 @
3f7036a0
...
...
@@ -1623,7 +1623,7 @@ static inline int dentry_has_perm(const struct cred *cred,
the path to help the auditing code to more easily generate the
pathname if needed. */
static
inline
int
path_has_perm
(
const
struct
cred
*
cred
,
struct
path
*
path
,
const
struct
path
*
path
,
u32
av
)
{
struct
inode
*
inode
=
path
->
dentry
->
d_inode
;
...
...
@@ -2954,15 +2954,9 @@ static int selinux_inode_setattr(struct dentry *dentry, struct iattr *iattr)
return
dentry_has_perm
(
cred
,
dentry
,
av
);
}
static
int
selinux_inode_getattr
(
struct
vfsmount
*
mnt
,
struct
dentry
*
dentry
)
static
int
selinux_inode_getattr
(
const
struct
path
*
path
)
{
const
struct
cred
*
cred
=
current_cred
();
struct
path
path
;
path
.
dentry
=
dentry
;
path
.
mnt
=
mnt
;
return
path_has_perm
(
cred
,
&
path
,
FILE__GETATTR
);
return
path_has_perm
(
current_cred
(),
path
,
FILE__GETATTR
);
}
static
int
selinux_inode_setotherxattr
(
struct
dentry
*
dentry
,
const
char
*
name
)
...
...
security/smack/smack_lsm.c
浏览文件 @
3f7036a0
...
...
@@ -1034,19 +1034,16 @@ static int smack_inode_setattr(struct dentry *dentry, struct iattr *iattr)
*
* Returns 0 if access is permitted, an error code otherwise
*/
static
int
smack_inode_getattr
(
struct
vfsmount
*
mnt
,
struct
dentry
*
dentry
)
static
int
smack_inode_getattr
(
const
struct
path
*
path
)
{
struct
smk_audit_info
ad
;
struct
path
path
;
struct
inode
*
inode
=
path
->
dentry
->
d_inode
;
int
rc
;
path
.
dentry
=
dentry
;
path
.
mnt
=
mnt
;
smk_ad_init
(
&
ad
,
__func__
,
LSM_AUDIT_DATA_PATH
);
smk_ad_setfield_u_fs_path
(
&
ad
,
path
);
rc
=
smk_curacc
(
smk_of_inode
(
dentry
->
d_
inode
),
MAY_READ
,
&
ad
);
rc
=
smk_bu_inode
(
dentry
->
d_
inode
,
MAY_READ
,
rc
);
smk_ad_setfield_u_fs_path
(
&
ad
,
*
path
);
rc
=
smk_curacc
(
smk_of_inode
(
inode
),
MAY_READ
,
&
ad
);
rc
=
smk_bu_inode
(
inode
,
MAY_READ
,
rc
);
return
rc
;
}
...
...
security/tomoyo/common.h
浏览文件 @
3f7036a0
...
...
@@ -978,7 +978,7 @@ int tomoyo_path2_perm(const u8 operation, struct path *path1,
struct
path
*
path2
);
int
tomoyo_path_number_perm
(
const
u8
operation
,
struct
path
*
path
,
unsigned
long
number
);
int
tomoyo_path_perm
(
const
u8
operation
,
struct
path
*
path
,
int
tomoyo_path_perm
(
const
u8
operation
,
const
struct
path
*
path
,
const
char
*
target
);
unsigned
int
tomoyo_poll_control
(
struct
file
*
file
,
poll_table
*
wait
);
unsigned
int
tomoyo_poll_log
(
struct
file
*
file
,
poll_table
*
wait
);
...
...
security/tomoyo/file.c
浏览文件 @
3f7036a0
...
...
@@ -145,7 +145,7 @@ static void tomoyo_add_slash(struct tomoyo_path_info *buf)
*
* Returns true on success, false otherwise.
*/
static
bool
tomoyo_get_realpath
(
struct
tomoyo_path_info
*
buf
,
struct
path
*
path
)
static
bool
tomoyo_get_realpath
(
struct
tomoyo_path_info
*
buf
,
const
struct
path
*
path
)
{
buf
->
name
=
tomoyo_realpath_from_path
(
path
);
if
(
buf
->
name
)
{
...
...
@@ -782,7 +782,7 @@ int tomoyo_check_open_permission(struct tomoyo_domain_info *domain,
*
* Returns 0 on success, negative value otherwise.
*/
int
tomoyo_path_perm
(
const
u8
operation
,
struct
path
*
path
,
const
char
*
target
)
int
tomoyo_path_perm
(
const
u8
operation
,
const
struct
path
*
path
,
const
char
*
target
)
{
struct
tomoyo_request_info
r
;
struct
tomoyo_obj_info
obj
=
{
...
...
security/tomoyo/tomoyo.c
浏览文件 @
3f7036a0
...
...
@@ -144,10 +144,9 @@ static int tomoyo_bprm_check_security(struct linux_binprm *bprm)
*
* Returns 0 on success, negative value otherwise.
*/
static
int
tomoyo_inode_getattr
(
struct
vfsmount
*
mnt
,
struct
dentry
*
dentry
)
static
int
tomoyo_inode_getattr
(
const
struct
path
*
path
)
{
struct
path
path
=
{
mnt
,
dentry
};
return
tomoyo_path_perm
(
TOMOYO_TYPE_GETATTR
,
&
path
,
NULL
);
return
tomoyo_path_perm
(
TOMOYO_TYPE_GETATTR
,
path
,
NULL
);
}
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录