Skip to content

Commit 4df40aa

Browse files
authored
process_execute_failed: don't rely on sys_enter (#4259)
1 parent a325d64 commit 4df40aa

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

pkg/ebpf/c/tracee.bpf.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4984,13 +4984,21 @@ statfunc int execute_failed_tail2(struct pt_regs *ctx)
49844984
if (!init_tailcall_program_data(&p, ctx))
49854985
return -1;
49864986

4987-
syscall_data_t *sys = &p.task_info->syscall_data;
4988-
save_str_arr_to_buf(
4989-
&p.event->args_buf, (const char *const *) sys->args.args[1], 10); // userspace argv
4987+
long long argv, envp;
4988+
struct pt_regs *regs = get_current_task_pt_regs();
4989+
4990+
if (p.event->context.syscall == SYSCALL_EXECVE) {
4991+
argv = get_syscall_arg2(p.event->task, regs, false);
4992+
envp = get_syscall_arg3(p.event->task, regs, false);
4993+
} else {
4994+
argv = get_syscall_arg3(p.event->task, regs, false);
4995+
envp = get_syscall_arg4(p.event->task, regs, false);
4996+
}
4997+
4998+
save_str_arr_to_buf(&p.event->args_buf, (const char *const *) argv, 10); // userspace argv
49904999

49915000
if (p.config->options & OPT_EXEC_ENV) {
4992-
save_str_arr_to_buf(
4993-
&p.event->args_buf, (const char *const *) sys->args.args[2], 11); // userspace envp
5001+
save_str_arr_to_buf(&p.event->args_buf, (const char *const *) envp, 11); // userspace envp
49945002
}
49955003

49965004
int ret = PT_REGS_RC(ctx); // needs to be int

pkg/events/core.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12954,7 +12954,6 @@ var CoreEvents = map[ID]Definition{
1295412954
probes: []Probe{
1295512955
{handle: probes.ExecBinprm, required: false},
1295612956
{handle: probes.ExecBinprmRet, required: false},
12957-
{handle: probes.SyscallEnter__Internal, required: true},
1295812957
},
1295912958
tailCalls: []TailCall{
1296012959
{"prog_array", "trace_execute_failed1", []uint32{TailProcessExecuteFailed1}},

0 commit comments

Comments
 (0)