diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-02-28 20:37:01 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-02-28 20:37:01 +0900 |
| commit | 4b0cce4db5f8e75c79e104f8c5ec02cb4541ed76 (patch) | |
| tree | 3143e1a8f9f28dbd3093b4329066b6d6db0b8156 /ldd/exec.go | |
| parent | cd9b534d6b1d432d3c997ccc5b14f630afb9dda6 (diff) | |
ldd: treat nil pathname as self
This is a helpful shortcut for examining a test program's ldd output.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'ldd/exec.go')
| -rw-r--r-- | ldd/exec.go | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/ldd/exec.go b/ldd/exec.go index bbcf2958..c0b40655 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() |
