Call for testing: OpenSSH 7.8
Michael Felt
michael at felt.demon.nl
Mon Aug 20 18:33:57 AEST 2018
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
More information about the openssh-unix-dev
mailing list