Call for testing: OpenSSH 7.8

Michael Felt
Mon, 20 Aug 2018 08:33:57 -0000

On 17/08/2018 17:15, Ingo Schwarze wrote:
> 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?
OK. Double checked.
AIX defaults:
environment:
LANG=en_US
root at x064:[/usr/lib/nls/loc]ls -l /usr/lib/nls/loc/en_US
lrwxrwxrwx??? 1 bin????? bin????????????? 32 Aug 02 06:40
/usr/lib/nls/loc/en_US -> /usr/lib/nls/loc/en_US.ISO8859-1

And, after installing the UTF-8 fileset (?
/usr/lib/nls/loc/en_US.UTF-8??????????????? bos.loc.utf.EN_US???? File)

The test is attempted, and fails.

Question #1 - how can I run only this test? Then it is easier to look
for potential resolutions.

> 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.
While I wait for the answer - I'll just run the tests prefixed with
export? LC_CTYPE=en_US.UTF-8 - maybe that is all that is needed.

Reminds me of Question #2: how is your definition of POSIX different
from ISO8859-1 (and/or ISO8859-15, the "UK" or EN_US
variant)?
> 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
> _______________________________________________
> openssh-unix-dev mailing list
> openssh-unix-dev at mindrot.org
> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev