From: Junio C Hamano Date: Fri, 17 Oct 2025 17:42:17 GMT Subject: Re: t7528-signed-commit-ssh.sh fails due to ssh-agent fails to start with ENAMETOOLONG Message-ID: In-Reply-To: <20251017070912.GA4068463@coredump.intra.peff.net> Jeff King writes: > AFAICT, ssh-agent does not quote the path in its output. So for example: > > d='/tmp/has spaces' > mkdir "$d" > HOME=$d ssh-agent > > will produce: > > SSH_AUTH_SOCK=/tmp/has spaces/.ssh/agent/s.IcPuGe26YY.agent.6PtD3uhM4O; export SSH_AUTH_SOCK; > > which is nonsense to eval. So if $d were d='/tmp/has rm -rf in it' would that produce some interesting side effect? > I expected that would cause ssh-add to fail, since our SSH_AUTH_SOCK > would point to truncated garbage, and we can't talk to the agent. But it > doesn't even do that. The extra space turns that line from a variable > assignment into a one-shot variable attached to a command that fails to > run. And so we're left with the original SSH_AUTH_SOCK from the > environment, the one in my real $HOME outside of the trash directory. > Yikes! > > If I unset SSH_AUTH_SOCK in my environment, then the test consistently > fails. But I'm somewhat amazed that nobody has complained about this > before. Surely somebody somewhere (especially CI!) is running t7528 > without SSH_AUTH_SOCK set in the environment. Which makes wonder if I'm > missing something. > > -Peff