diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-21 07:58:19 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-21 07:58:19 +0300 |
| commit | 3a5706f21d30258577a5934efb93c400dad723db (patch) | |
| tree | c2df6808687a9d34deec9b88d3c69e888013ed70 /internal/generate/bpfhandler.go | |
| parent | be6d4e8ffc722bf0d36c5b01ff46f817539a1525 (diff) | |
task-47: fix execveat dirfd codegen fallback
Diffstat (limited to 'internal/generate/bpfhandler.go')
| -rw-r--r-- | internal/generate/bpfhandler.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/internal/generate/bpfhandler.go b/internal/generate/bpfhandler.go index 5489d88..9365c52 100644 --- a/internal/generate/bpfhandler.go +++ b/internal/generate/bpfhandler.go @@ -151,6 +151,12 @@ func generateExtraMqOpen(f *Format) string { func generateExtraExec(f *Format) string { filenameIdx := f.FieldNumber("filename") dirfdIdx := f.FieldNumber("dfd") + if dirfdIdx < 0 { + dirfdIdx = f.FieldNumber("fd") + } + if dirfdIdx < 0 { + dirfdIdx = f.FieldNumber("dirfd") + } flagsIdx := f.FieldNumber("flags") if filenameIdx < 0 { filenameIdx = 0 @@ -161,6 +167,8 @@ func generateExtraExec(f *Format) string { b.WriteString(" bpf_get_current_comm(&ev->comm, sizeof(ev->comm));\n") if dirfdIdx > -1 { fmt.Fprintf(&b, " ev->dirfd = (__s32)ctx->args[%d];\n", dirfdIdx) + } else if f.Name == "sys_enter_execveat" { + b.WriteString(" ev->dirfd = (__s32)ctx->args[0];\n") } else { b.WriteString(" ev->dirfd = -1;\n") } |
