Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
9c2c7039
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看板
提交
9c2c7039
编写于
6月 20, 2011
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
->permission() sanitizing: pass MAY_NOT_BLOCK to ->check_acl()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
1fc0f78c
变更
13
显示空白变更内容
内联
并排
Showing
13 changed file
with
14 addition
and
15 deletion
+14
-15
fs/9p/acl.c
fs/9p/acl.c
+1
-1
fs/btrfs/acl.c
fs/btrfs/acl.c
+1
-2
fs/ext2/acl.c
fs/ext2/acl.c
+1
-1
fs/ext3/acl.c
fs/ext3/acl.c
+1
-1
fs/ext4/acl.c
fs/ext4/acl.c
+1
-1
fs/generic_acl.c
fs/generic_acl.c
+1
-1
fs/gfs2/acl.c
fs/gfs2/acl.c
+1
-1
fs/jffs2/acl.c
fs/jffs2/acl.c
+1
-1
fs/jfs/acl.c
fs/jfs/acl.c
+1
-1
fs/namei.c
fs/namei.c
+2
-2
fs/ocfs2/acl.c
fs/ocfs2/acl.c
+1
-1
fs/reiserfs/xattr.c
fs/reiserfs/xattr.c
+1
-1
fs/xfs/linux-2.6/xfs_acl.c
fs/xfs/linux-2.6/xfs_acl.c
+1
-1
未找到文件。
fs/9p/acl.c
浏览文件 @
9c2c7039
...
@@ -101,7 +101,7 @@ int v9fs_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -101,7 +101,7 @@ int v9fs_check_acl(struct inode *inode, int mask, unsigned int flags)
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
struct
v9fs_session_info
*
v9ses
;
struct
v9fs_session_info
*
v9ses
;
if
(
flags
&
IPERM_FLAG_RCU
)
if
(
mask
&
MAY_NOT_BLOCK
)
return
-
ECHILD
;
return
-
ECHILD
;
v9ses
=
v9fs_inode2v9ses
(
inode
);
v9ses
=
v9fs_inode2v9ses
(
inode
);
...
...
fs/btrfs/acl.c
浏览文件 @
9c2c7039
...
@@ -199,10 +199,9 @@ int btrfs_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -199,10 +199,9 @@ int btrfs_check_acl(struct inode *inode, int mask, unsigned int flags)
{
{
int
error
=
-
EAGAIN
;
int
error
=
-
EAGAIN
;
if
(
flags
&
IPERM_FLAG_RCU
)
{
if
(
mask
&
MAY_NOT_BLOCK
)
{
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
error
=
-
ECHILD
;
error
=
-
ECHILD
;
}
else
{
}
else
{
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
acl
=
btrfs_get_acl
(
inode
,
ACL_TYPE_ACCESS
);
acl
=
btrfs_get_acl
(
inode
,
ACL_TYPE_ACCESS
);
...
...
fs/ext2/acl.c
浏览文件 @
9c2c7039
...
@@ -236,7 +236,7 @@ ext2_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -236,7 +236,7 @@ ext2_check_acl(struct inode *inode, int mask, unsigned int flags)
{
{
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
if
(
flags
&
IPERM_FLAG_RCU
)
{
if
(
mask
&
MAY_NOT_BLOCK
)
{
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
return
-
ECHILD
;
return
-
ECHILD
;
return
-
EAGAIN
;
return
-
EAGAIN
;
...
...
fs/ext3/acl.c
浏览文件 @
9c2c7039
...
@@ -244,7 +244,7 @@ ext3_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -244,7 +244,7 @@ ext3_check_acl(struct inode *inode, int mask, unsigned int flags)
{
{
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
if
(
flags
&
IPERM_FLAG_RCU
)
{
if
(
mask
&
MAY_NOT_BLOCK
)
{
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
return
-
ECHILD
;
return
-
ECHILD
;
return
-
EAGAIN
;
return
-
EAGAIN
;
...
...
fs/ext4/acl.c
浏览文件 @
9c2c7039
...
@@ -242,7 +242,7 @@ ext4_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -242,7 +242,7 @@ ext4_check_acl(struct inode *inode, int mask, unsigned int flags)
{
{
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
if
(
flags
&
IPERM_FLAG_RCU
)
{
if
(
mask
&
MAY_NOT_BLOCK
)
{
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
return
-
ECHILD
;
return
-
ECHILD
;
return
-
EAGAIN
;
return
-
EAGAIN
;
...
...
fs/generic_acl.c
浏览文件 @
9c2c7039
...
@@ -192,7 +192,7 @@ generic_acl_chmod(struct inode *inode)
...
@@ -192,7 +192,7 @@ generic_acl_chmod(struct inode *inode)
int
int
generic_check_acl
(
struct
inode
*
inode
,
int
mask
,
unsigned
int
flags
)
generic_check_acl
(
struct
inode
*
inode
,
int
mask
,
unsigned
int
flags
)
{
{
if
(
flags
&
IPERM_FLAG_RCU
)
{
if
(
mask
&
MAY_NOT_BLOCK
)
{
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
return
-
ECHILD
;
return
-
ECHILD
;
}
else
{
}
else
{
...
...
fs/gfs2/acl.c
浏览文件 @
9c2c7039
...
@@ -80,7 +80,7 @@ int gfs2_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -80,7 +80,7 @@ int gfs2_check_acl(struct inode *inode, int mask, unsigned int flags)
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
int
error
;
int
error
;
if
(
flags
&
IPERM_FLAG_RCU
)
{
if
(
mask
&
MAY_NOT_BLOCK
)
{
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
return
-
ECHILD
;
return
-
ECHILD
;
return
-
EAGAIN
;
return
-
EAGAIN
;
...
...
fs/jffs2/acl.c
浏览文件 @
9c2c7039
...
@@ -264,7 +264,7 @@ int jffs2_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -264,7 +264,7 @@ int jffs2_check_acl(struct inode *inode, int mask, unsigned int flags)
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
int
rc
;
int
rc
;
if
(
flags
&
IPERM_FLAG_RCU
)
if
(
mask
&
MAY_NOT_BLOCK
)
return
-
ECHILD
;
return
-
ECHILD
;
acl
=
jffs2_get_acl
(
inode
,
ACL_TYPE_ACCESS
);
acl
=
jffs2_get_acl
(
inode
,
ACL_TYPE_ACCESS
);
...
...
fs/jfs/acl.c
浏览文件 @
9c2c7039
...
@@ -118,7 +118,7 @@ int jfs_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -118,7 +118,7 @@ int jfs_check_acl(struct inode *inode, int mask, unsigned int flags)
{
{
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
if
(
flags
&
IPERM_FLAG_RCU
)
if
(
mask
&
MAY_NOT_BLOCK
)
return
-
ECHILD
;
return
-
ECHILD
;
acl
=
jfs_get_acl
(
inode
,
ACL_TYPE_ACCESS
);
acl
=
jfs_get_acl
(
inode
,
ACL_TYPE_ACCESS
);
...
...
fs/namei.c
浏览文件 @
9c2c7039
...
@@ -181,7 +181,7 @@ static int acl_permission_check(struct inode *inode, int mask, unsigned int flag
...
@@ -181,7 +181,7 @@ static int acl_permission_check(struct inode *inode, int mask, unsigned int flag
int
(
*
check_acl
)(
struct
inode
*
inode
,
int
mask
,
unsigned
int
flags
);
int
(
*
check_acl
)(
struct
inode
*
inode
,
int
mask
,
unsigned
int
flags
);
unsigned
int
mode
=
inode
->
i_mode
;
unsigned
int
mode
=
inode
->
i_mode
;
mask
&=
MAY_READ
|
MAY_WRITE
|
MAY_EXEC
;
mask
&=
MAY_READ
|
MAY_WRITE
|
MAY_EXEC
|
MAY_NOT_BLOCK
;
if
(
current_user_ns
()
!=
inode_userns
(
inode
))
if
(
current_user_ns
()
!=
inode_userns
(
inode
))
goto
other_perms
;
goto
other_perms
;
...
@@ -204,7 +204,7 @@ static int acl_permission_check(struct inode *inode, int mask, unsigned int flag
...
@@ -204,7 +204,7 @@ static int acl_permission_check(struct inode *inode, int mask, unsigned int flag
/*
/*
* If the DACs are ok we don't need any capability check.
* If the DACs are ok we don't need any capability check.
*/
*/
if
((
mask
&
~
mode
)
==
0
)
if
((
mask
&
~
mode
&
(
MAY_READ
|
MAY_WRITE
|
MAY_EXEC
)
)
==
0
)
return
0
;
return
0
;
return
-
EACCES
;
return
-
EACCES
;
}
}
...
...
fs/ocfs2/acl.c
浏览文件 @
9c2c7039
...
@@ -297,7 +297,7 @@ int ocfs2_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -297,7 +297,7 @@ int ocfs2_check_acl(struct inode *inode, int mask, unsigned int flags)
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
int
ret
=
-
EAGAIN
;
int
ret
=
-
EAGAIN
;
if
(
flags
&
IPERM_FLAG_RCU
)
if
(
mask
&
MAY_NOT_BLOCK
)
return
-
ECHILD
;
return
-
ECHILD
;
osb
=
OCFS2_SB
(
inode
->
i_sb
);
osb
=
OCFS2_SB
(
inode
->
i_sb
);
...
...
fs/reiserfs/xattr.c
浏览文件 @
9c2c7039
...
@@ -879,7 +879,7 @@ int reiserfs_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -879,7 +879,7 @@ int reiserfs_check_acl(struct inode *inode, int mask, unsigned int flags)
if
(
get_inode_sd_version
(
inode
)
==
STAT_DATA_V1
)
if
(
get_inode_sd_version
(
inode
)
==
STAT_DATA_V1
)
return
-
EAGAIN
;
return
-
EAGAIN
;
if
(
flags
&
IPERM_FLAG_RCU
)
if
(
mask
&
MAY_NOT_BLOCK
)
return
-
ECHILD
;
return
-
ECHILD
;
acl
=
reiserfs_get_acl
(
inode
,
ACL_TYPE_ACCESS
);
acl
=
reiserfs_get_acl
(
inode
,
ACL_TYPE_ACCESS
);
...
...
fs/xfs/linux-2.6/xfs_acl.c
浏览文件 @
9c2c7039
...
@@ -235,7 +235,7 @@ xfs_check_acl(struct inode *inode, int mask, unsigned int flags)
...
@@ -235,7 +235,7 @@ xfs_check_acl(struct inode *inode, int mask, unsigned int flags)
if
(
!
XFS_IFORK_Q
(
ip
))
if
(
!
XFS_IFORK_Q
(
ip
))
return
-
EAGAIN
;
return
-
EAGAIN
;
if
(
flags
&
IPERM_FLAG_RCU
)
{
if
(
mask
&
MAY_NOT_BLOCK
)
{
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
if
(
!
negative_cached_acl
(
inode
,
ACL_TYPE_ACCESS
))
return
-
ECHILD
;
return
-
ECHILD
;
return
-
EAGAIN
;
return
-
EAGAIN
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录