diff --git a/ldd/exec.go b/ldd/exec.go index bbcf295..c0b4065 100644 --- a/ldd/exec.go +++ b/ldd/exec.go @@ -36,7 +36,19 @@ const ( // [os.SyscallError] for fault creating the stdout pipe, // [container.StartError] for fault during either stage of container setup. // Otherwise, it passes through the return values of [Decoder.Decode]. -func Resolve(ctx context.Context, msg message.Msg, pathname *check.Absolute) ([]*Entry, error) { +func Resolve( + ctx context.Context, + msg message.Msg, + pathname *check.Absolute, +) ([]*Entry, error) { + if pathname == nil { + if p, err := os.Executable(); err != nil { + return nil, err + } else if pathname, err = check.NewAbs(p); err != nil { + return nil, err + } + } + c, cancel := context.WithTimeout(ctx, lddTimeout) defer cancel() diff --git a/ldd/exec_test.go b/ldd/exec_test.go index 8c35a90..a1e9734 100644 --- a/ldd/exec_test.go +++ b/ldd/exec_test.go @@ -34,7 +34,7 @@ func TestExec(t *testing.T) { t.Run("success", func(t *testing.T) { msg := message.New(nil) msg.GetLogger().SetPrefix("check: ") - if entries, err := ldd.Resolve(t.Context(), nil, check.MustAbs(container.MustExecutable(msg))); err != nil { + if entries, err := ldd.Resolve(t.Context(), nil, nil); err != nil { t.Fatalf("Exec: error = %v", err) } else if testing.Verbose() { // result cannot be measured here as build information is not known