Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xv6-public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
OS Lab Group
奖励实验
xv6-public
提交
da27a6b4
提交
da27a6b4
1月 16, 2012
创建
作者:
Silas Boyd-Wickizer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix validatetest in usertests
上级
25758885
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
9 行增加
和
18 行删除
+9
-18
usertests.c
usertests.c
+9
-18
没有找到文件。
usertests.c
浏览文件 @
da27a6b4
...
...
@@ -1379,31 +1379,22 @@ sbrktest(void)
}
void
validateint
(
int
*
p
)
{
int
res
;
__asm
(
"mov %%esp, %%ebx
\n\t
"
"mov %3, %%esp
\n\t
"
"int %2
\n\t
"
"mov %%ebx, %%esp"
:
"=a"
(
res
)
:
"a"
(
SYS_sleep
),
"n"
(
T_SYSCALL
),
"c"
(
p
)
:
"ebx"
);
}
void
validatetest
(
void
)
{
int
hi
,
pid
;
uptr
p
;
int
pid
;
uptr
lo
,
hi
,
p
;
printf
(
stdout
,
"validate test
\n
"
);
hi
=
1100
*
1024
;
// Do 16 pages below the bottom of userspace and 16 pages above,
// which should be code pages and read-only
lo
=
(
1024
*
1024
)
-
16
*
4096
;
hi
=
(
1024
*
1024
)
+
16
*
4096
;
for
(
p
=
0
;
p
<=
(
uptr
)
hi
;
p
+=
4096
){
for
(
p
=
lo
;
p
<=
hi
;
p
+=
4096
){
if
((
pid
=
fork
(
0
))
==
0
){
// try to crash the kernel by passing in a badly placed integer
validateint
((
int
*
)
p
);
if
(
pipe
((
int
*
)
p
)
==
0
)
printf
(
stdout
,
"validatetest failed (pipe succeeded)
\n
"
);
exit
();
}
sleep
(
0
);
...
...
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论