Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
187cd44e
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
187cd44e
编写于
4月 22, 2012
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sparc: missing checks of __get_user()/__put_user() return values
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
9a078802
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
12 addition
and
10 deletion
+12
-10
arch/sparc/kernel/signal32.c
arch/sparc/kernel/signal32.c
+6
-4
arch/sparc/kernel/sys_sparc_32.c
arch/sparc/kernel/sys_sparc_32.c
+6
-6
未找到文件。
arch/sparc/kernel/signal32.c
浏览文件 @
187cd44e
...
...
@@ -215,8 +215,9 @@ void do_sigreturn32(struct pt_regs *regs)
(((
unsigned
long
)
sf
)
&
3
))
goto
segv
;
get_user
(
pc
,
&
sf
->
info
.
si_regs
.
pc
);
__get_user
(
npc
,
&
sf
->
info
.
si_regs
.
npc
);
if
(
get_user
(
pc
,
&
sf
->
info
.
si_regs
.
pc
)
||
__get_user
(
npc
,
&
sf
->
info
.
si_regs
.
npc
))
goto
segv
;
if
((
pc
|
npc
)
&
3
)
goto
segv
;
...
...
@@ -305,8 +306,9 @@ asmlinkage void do_rt_sigreturn32(struct pt_regs *regs)
(((
unsigned
long
)
sf
)
&
3
))
goto
segv
;
get_user
(
pc
,
&
sf
->
regs
.
pc
);
__get_user
(
npc
,
&
sf
->
regs
.
npc
);
if
(
get_user
(
pc
,
&
sf
->
regs
.
pc
)
||
__get_user
(
npc
,
&
sf
->
regs
.
npc
))
goto
segv
;
if
((
pc
|
npc
)
&
3
)
goto
segv
;
...
...
arch/sparc/kernel/sys_sparc_32.c
浏览文件 @
187cd44e
...
...
@@ -184,10 +184,10 @@ sparc_sigaction (int sig, const struct old_sigaction __user *act,
if
(
!
access_ok
(
VERIFY_READ
,
act
,
sizeof
(
*
act
))
||
__get_user
(
new_ka
.
sa
.
sa_handler
,
&
act
->
sa_handler
)
||
__get_user
(
new_ka
.
sa
.
sa_restorer
,
&
act
->
sa_restorer
))
__get_user
(
new_ka
.
sa
.
sa_restorer
,
&
act
->
sa_restorer
)
||
__get_user
(
new_ka
.
sa
.
sa_flags
,
&
act
->
sa_flags
)
||
__get_user
(
mask
,
&
act
->
sa_mask
))
return
-
EFAULT
;
__get_user
(
new_ka
.
sa
.
sa_flags
,
&
act
->
sa_flags
);
__get_user
(
mask
,
&
act
->
sa_mask
);
siginitset
(
&
new_ka
.
sa
.
sa_mask
,
mask
);
new_ka
.
ka_restorer
=
NULL
;
}
...
...
@@ -202,10 +202,10 @@ sparc_sigaction (int sig, const struct old_sigaction __user *act,
*/
if
(
!
access_ok
(
VERIFY_WRITE
,
oact
,
sizeof
(
*
oact
))
||
__put_user
(
old_ka
.
sa
.
sa_handler
,
&
oact
->
sa_handler
)
||
__put_user
(
old_ka
.
sa
.
sa_restorer
,
&
oact
->
sa_restorer
))
__put_user
(
old_ka
.
sa
.
sa_restorer
,
&
oact
->
sa_restorer
)
||
__put_user
(
old_ka
.
sa
.
sa_flags
,
&
oact
->
sa_flags
)
||
__put_user
(
old_ka
.
sa
.
sa_mask
.
sig
[
0
],
&
oact
->
sa_mask
))
return
-
EFAULT
;
__put_user
(
old_ka
.
sa
.
sa_flags
,
&
oact
->
sa_flags
);
__put_user
(
old_ka
.
sa
.
sa_mask
.
sig
[
0
],
&
oact
->
sa_mask
);
}
return
ret
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录