Skip to content

Commit

Permalink
tetragon: Adjust linkPinPath for new hierarchy
Browse files Browse the repository at this point in the history
Signed-off-by: Jiri Olsa <[email protected]>
  • Loading branch information
olsajiri committed Jul 9, 2024
1 parent bf6c090 commit 989c89a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 19 deletions.
14 changes: 4 additions & 10 deletions pkg/sensors/program/loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,11 @@ type LoadOpts struct {
}

func linkPinPath(bpfDir string, load *Program, extra ...string) string {
pinPath := filepath.Join(bpfDir, load.PinPath)
if load.Override {
pinPath = pinPath + "_override"
}
if load.RetProbe {
pinPath = pinPath + "_return"
}
pinPath := filepath.Join(bpfDir, load.PinPath, "link")
if len(extra) != 0 {
pinPath = pinPath + "_" + strings.Join(extra, "_")
}
return pinPath + "_link"
return pinPath
}

func linkPin(lnk link.Link, bpfDir string, load *Program, extra ...string) error {
Expand Down Expand Up @@ -241,13 +235,13 @@ func kprobeAttachOverride(load *Program, bpfDir string,
return fmt.Errorf("failed to clone generic_kprobe_override program: %w", err)
}

pinPath := filepath.Join(bpfDir, fmt.Sprint(load.PinPath, "-override"))
pinPath := filepath.Join(bpfDir, load.PinPath, "prog_override")

if err := prog.Pin(pinPath); err != nil {
return fmt.Errorf("pinning '%s' to '%s' failed: %w", load.Label, pinPath, err)
}

load.unloaderOverride, err = kprobeAttach(load, prog, spec, load.Attach, bpfDir)
load.unloaderOverride, err = kprobeAttach(load, prog, spec, load.Attach, bpfDir, "override")
if err != nil {
logger.GetLogger().Warnf("Failed to attach override program: %w", err)
}
Expand Down
19 changes: 10 additions & 9 deletions pkg/sensors/program/loader_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,21 @@ func TestLoaderLinkPinPath(t *testing.T) {
var load *Program
var pin string

// standard link
load = Builder("", "", "", "event", "")
load.PinPath = "test/generic_kprobe/__x64_sys_linkat"
pin = linkPinPath(bpfDir, load)
assert.Equal(t, filepath.Join(bpfDir, "event_link"), pin)
assert.Equal(t, filepath.Join(bpfDir, "test/generic_kprobe/__x64_sys_linkat", "link"), pin)

// override link
load = Builder("", "", "", "event", "")
load.Override = true
pin = linkPinPath(bpfDir, load)
assert.Equal(t, filepath.Join(bpfDir, "event_override_link"), pin)

load = Builder("", "", "", "event", "").SetRetProbe(true)
pin = linkPinPath(bpfDir, load)
assert.Equal(t, filepath.Join(bpfDir, "event_return_link"), pin)
load.PinPath = "test/generic_kprobe/__x64_sys_linkat"
pin = linkPinPath(bpfDir, load, "override")
assert.Equal(t, filepath.Join(bpfDir, "test/generic_kprobe/__x64_sys_linkat", "link_override"), pin)

// many-kprobe link
load = Builder("", "", "", "event", "")
load.PinPath = "test/generic_kprobe/__x64_sys_linkat"
pin = linkPinPath(bpfDir, load, "1_sys_exit")
assert.Equal(t, filepath.Join(bpfDir, "event_1_sys_exit_link"), pin)
assert.Equal(t, filepath.Join(bpfDir, "test/generic_kprobe/__x64_sys_linkat", "link_1_sys_exit"), pin)
}

0 comments on commit 989c89a

Please sign in to comment.