From bc54db54d2b33e5ed29667be69d0c07eed9bb007 Mon Sep 17 00:00:00 2001 From: Ophestra <cat@gensokyo.uk> Date: Mon, 17 Mar 2025 00:08:00 +0900 Subject: [PATCH] ldd: always copy stderr Dropping the buffer on success is unhelpful and could hide some useful information. Signed-off-by: Ophestra <cat@gensokyo.uk> --- ldd/exec.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ldd/exec.go b/ldd/exec.go index 4854c85..55d16cf 100644 --- a/ldd/exec.go +++ b/ldd/exec.go @@ -3,6 +3,7 @@ package ldd import ( "bytes" "context" + "io" "os" "os/exec" "time" @@ -35,7 +36,9 @@ func ExecFilter(ctx context.Context, if err := container.Start(); err != nil { return nil, err - } else if err = container.Serve(); err != nil { + } + defer func() { _, _ = io.Copy(os.Stderr, stderr) }() + if err := container.Serve(); err != nil { return nil, err } if err := container.Wait(); err != nil { @@ -44,8 +47,6 @@ func ExecFilter(ctx context.Context, bytes.Contains(m, msgStaticGlibc) { return nil, nil } - - _, _ = os.Stderr.Write(m) return nil, err }