Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gsplhtlxg
clone-Linux
提交
da3d4c5f
C
clone-Linux
项目概览
gsplhtlxg
/
clone-Linux
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
clone-Linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
da3d4c5f
编写于
10月 20, 2012
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
get rid of pt_regs argument of do_execve()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
d03d26e5
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
8 addition
and
13 deletion
+8
-13
fs/exec.c
fs/exec.c
+6
-10
include/linux/sched.h
include/linux/sched.h
+1
-1
include/linux/syscalls.h
include/linux/syscalls.h
+1
-2
未找到文件。
fs/exec.c
浏览文件 @
da3d4c5f
...
...
@@ -1566,12 +1566,11 @@ static int do_execve_common(const char *filename,
int
do_execve
(
const
char
*
filename
,
const
char
__user
*
const
__user
*
__argv
,
const
char
__user
*
const
__user
*
__envp
,
struct
pt_regs
*
regs
)
const
char
__user
*
const
__user
*
__envp
)
{
struct
user_arg_ptr
argv
=
{
.
ptr
.
native
=
__argv
};
struct
user_arg_ptr
envp
=
{
.
ptr
.
native
=
__envp
};
return
do_execve_common
(
filename
,
argv
,
envp
,
regs
);
return
do_execve_common
(
filename
,
argv
,
envp
,
current_pt_regs
()
);
}
#ifdef CONFIG_COMPAT
...
...
@@ -1668,7 +1667,7 @@ SYSCALL_DEFINE3(execve,
struct
filename
*
path
=
getname
(
filename
);
int
error
=
PTR_ERR
(
path
);
if
(
!
IS_ERR
(
path
))
{
error
=
do_execve
(
path
->
name
,
argv
,
envp
,
current_pt_regs
()
);
error
=
do_execve
(
path
->
name
,
argv
,
envp
);
putname
(
path
);
}
return
error
;
...
...
@@ -1694,12 +1693,9 @@ int kernel_execve(const char *filename,
const
char
*
const
argv
[],
const
char
*
const
envp
[])
{
struct
pt_regs
*
p
=
current_pt_regs
();
int
ret
;
ret
=
do_execve
(
filename
,
int
ret
=
do_execve
(
filename
,
(
const
char
__user
*
const
__user
*
)
argv
,
(
const
char
__user
*
const
__user
*
)
envp
,
p
);
(
const
char
__user
*
const
__user
*
)
envp
);
if
(
ret
<
0
)
return
ret
;
...
...
@@ -1707,6 +1703,6 @@ int kernel_execve(const char *filename,
* We were successful. We won't be returning to our caller, but
* instead to user space by manipulating the kernel stack.
*/
ret_from_kernel_execve
(
p
);
ret_from_kernel_execve
(
current_pt_regs
()
);
}
#endif
include/linux/sched.h
浏览文件 @
da3d4c5f
...
...
@@ -2288,7 +2288,7 @@ extern int disallow_signal(int);
extern
int
do_execve
(
const
char
*
,
const
char
__user
*
const
__user
*
,
const
char
__user
*
const
__user
*
,
struct
pt_regs
*
);
const
char
__user
*
const
__user
*
);
extern
long
do_fork
(
unsigned
long
,
unsigned
long
,
struct
pt_regs
*
,
unsigned
long
,
int
__user
*
,
int
__user
*
);
struct
task_struct
*
fork_idle
(
int
);
#ifdef CONFIG_GENERIC_KERNEL_THREAD
...
...
include/linux/syscalls.h
浏览文件 @
da3d4c5f
...
...
@@ -833,8 +833,7 @@ int kernel_execve(const char *filename, const char *const argv[], const char *co
#define kernel_execve(filename, argv, envp) \
do_execve(filename, \
(const char __user *const __user *)argv, \
(const char __user *const __user *)envp, \
current_pt_regs())
(const char __user *const __user *)envp)
#endif
asmlinkage
long
sys_execve
(
const
char
__user
*
filename
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录