On Fri, Sep 29, 2017 at 11:55:26 -0700, Darren Tucker wrote: > On 29 September 2017 at 11:05, Iain Morgan <imorgan+openssh@xxxxxxxxxxxx> wrote: > [...] > > This is due to my shell being csh, which is pickier about undefined > > variables than the Bourne-style shells. The attached patch fixes the > > issue. > > Thanks for figuring this out. > > > - 'test -z "$SSH_USER_AUTH"' || fail "SSH_USER_AUTH present" > > + 'test -z `printenv SSH_USER_AUTH`' || fail "SSH_USER_AUTH present" > > Unfortunately printenv is not specified by posix (AFAICT it's a > gnuism) so that would likely break many other currently working > platforms. > Would it be possible to do something like: > > 'test -z `sh -c "echo $SSH_USER_AUTH"`' || fail "SSH_USER_AUTH present" > > (plus or minus some quoting, probably) ? > Actually, according to OpenBSD's printenv(1) man page, it first appeared in 2BSD. The man page on OS X claims it was BSD 3.0. However, it doesn't appear to be part of any standard. Your suggestion ran into the same issue as the original test, but escaping the evaluation by the user's shell appears to work: 'test -z `sh -c "echo \$SSH_USER_AUTH"`' || fail "SSH_USER_AUTH present" -- Iain Morgan _______________________________________________ openssh-unix-dev mailing list openssh-unix-dev@xxxxxxxxxxx https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev