|
@@ -453,6 +453,7 @@ ENTRY(stub_execve)
|
|
|
CFI_REGISTER rip, r11
|
|
|
SAVE_REST
|
|
|
FIXUP_TOP_OF_STACK %r11
|
|
|
+ movq %rsp, %rcx
|
|
|
call sys_execve
|
|
|
RESTORE_TOP_OF_STACK %r11
|
|
|
movq %rax,RAX(%rsp)
|
|
@@ -1036,15 +1037,16 @@ ENDPROC(child_rip)
|
|
|
* rdi: name, rsi: argv, rdx: envp
|
|
|
*
|
|
|
* We want to fallback into:
|
|
|
- * extern long sys_execve(char *name, char **argv,char **envp, struct pt_regs regs)
|
|
|
+ * extern long sys_execve(char *name, char **argv,char **envp, struct pt_regs *regs)
|
|
|
*
|
|
|
* do_sys_execve asm fallback arguments:
|
|
|
- * rdi: name, rsi: argv, rdx: envp, fake frame on the stack
|
|
|
+ * rdi: name, rsi: argv, rdx: envp, rcx: fake frame on the stack
|
|
|
*/
|
|
|
ENTRY(kernel_execve)
|
|
|
CFI_STARTPROC
|
|
|
FAKE_STACK_FRAME $0
|
|
|
SAVE_ALL
|
|
|
+ movq %rsp,%rcx
|
|
|
call sys_execve
|
|
|
movq %rax, RAX(%rsp)
|
|
|
RESTORE_REST
|