On Mon, 20 Aug 2018, Ingo Schwarze wrote: > Hi, > > Michael Felt wrote on Mon, Aug 20, 2018 at 05:00:17PM +0200: > > > ./nl_langinfo > > setlocale -> "C" > > nl_langinfo -> "ISO8859-1" > > Thanks, that is helpful. > > So i think i was wrong and Damien was right. This means that > OpenSSH returns truncated messages when non-ASCII bytes occur > in them, even when the user requests LC_CTYPE=POSIX. > That's not good. > > While there is no need to cater for any potential locale that users > might wilfully select, we should probably try to show complete > messages to users who specifically select the POSIX locale. > > Admittedly, AIX is weird in calling ASCII "ISO8859-1", which is > probably going to mean something different elsewhere. But given > that it is very unlikely that anything another system calls ISO8859-1 > is an unsafe (ASCII-incompatible or state-dependent) encoding, i'm > proposing the following patch. > > I suggest adding some comments because otherwise, we will > eventually forget where all these strings came from. > > OK? ok, djm@ (I'd prefer the comment before the return statement, but up to you) > Index: utf8.c > =================================================================== > RCS file: /cvs/src/usr.bin/ssh/utf8.c,v > retrieving revision 1.7 > diff -u -p -r1.7 utf8.c > --- utf8.c 31 May 2017 09:15:42 -0000 1.7 > +++ utf8.c 20 Aug 2018 17:11:33 -0000 > @@ -51,9 +51,18 @@ dangerous_locale(void) { > char *loc; > > loc = nl_langinfo(CODESET); > - return strcmp(loc, "US-ASCII") != 0 && strcmp(loc, "UTF-8") != 0 && > - strcmp(loc, "ANSI_X3.4-1968") != 0 && strcmp(loc, "646") != 0 && > - strcmp(loc, "") != 0; > + return strcmp(loc, "UTF-8") != 0 && > + strcmp(loc, "US-ASCII") != 0 && > + > + /* > + * What nl_langinfo(CODESET) returns for US-ASCII > + * on various operating systems: > + */ > + > + strcmp(loc, "ANSI_X3.4-1968") != 0 && /* Linux */ > + strcmp(loc, "ISO8859-1") != 0 && /* AIX */ > + strcmp(loc, "646") != 0 && /* Solaris, NetBSD */ > + strcmp(loc, "") != 0; /* Solaris 6 */ > } > > static int > _______________________________________________ > openssh-unix-dev mailing list > openssh-unix-dev@xxxxxxxxxxx > https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev > _______________________________________________ openssh-unix-dev mailing list openssh-unix-dev@xxxxxxxxxxx https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev