Call for testing: OpenSSH 7.8
Ingo Schwarze
schwarze at usta.de
Sat Aug 18 01:15:37 AEST 2018
Hi Darren,
Darren Tucker wrote on Fri, Aug 17, 2018 at 07:16:03AM -0700:
> On 13 August 2018 at 15:06, Val Baranov <val.baranov at duke.edu> wrote:
>> test_utf8: ........................
>> regress/unittests/utf8/tests.c:48 test #25 "c_esc"
>> ASSERT_INT_EQ(len, wantlen) failed:
>> len = -1
>> wantlen = 5
> This boils down to meaning OpenSSH's smnprintf call failed for the
> string "\033x" instead of returning the expected escaped version
> "\\033x". The code is in utf8.c but I am not sure why it failed.
Actually, it is *supposed* to fail unless the locale is either
UTF-8 or the POSIX (ASCII) locale, because '\033' is not a
printable character and attempting to escape invalid stuff
is unsafe in arbitrary locales.
> What's your locale set to?
It doesn't matter on OpenBSD, but maybe you should consider setting
LC_CTYPE=en_US.UTF-8 by default in TEST_ENV in the portable version
of the test suite? Of course, it would do no harm on OpenBSD either.
If you worry that some target system might not have a en_US.UTF-8
locale installed, you can look at
http://mandoc.bsd.lv/cgi-bin/cvsweb/configure?rev=HEAD
for a way to autodetect a suitable UTF-8 locale - look for UTF8_LOCALE
in that script.
But that may be overkill for OpenSSH. Just recklessly forcing
LC_CTYPE=en_US.UTF-8 may be good enough for OpenSSH's purposes.
If the target system doesn't provide it, setlocale(3) will fall
back to POSIX, which should be good enough for the tests.
Yours,
Ingo
More information about the openssh-unix-dev
mailing list