testsuite error on Solaris 2.6

Ingo Schwarze schwarze at usta.de
Mon Apr 3 04:15:58 AEST 2017


Hi,

Tom G. Christensen wrote on Sun, Apr 02, 2017 at 05:33:33PM +0200:

> For reference this is the patch I made and included in my Solaris 2.6
> openssh packages:
> https://github.com/tgc/tgcware-for-solaris/blob/master/openssh/src/0001-Treat-empty-codeset-value-as-ascii.patch

Sure, that has the same effect as what i sent, maybe a bit more readable.

> Note that in 7.5p1, '646' was added as an additional alias (which
> happened to cover not only NetBSD but also Solaris 7 and later.)

Now i'm confused.  Why would anyone allow dangerous_locale() to diverge
between OpenSSH proper and -portable?

I'd prefer the simplest approach of having all its parts in OpenSSH
proper; it does no harm on OpenBSD.  If people think it's too ugly,
my second preference would be to delete the whole function from
OpenSSH proper outright and only have it in -portable, which is
admittedly somewhat less simple.  But maintaining two different
versions really seems pointless and confusing to me.

So, that would be this patch:

OK?
  Ingo


Index: utf8.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/utf8.c,v
retrieving revision 1.5
diff -u -p -r1.5 utf8.c
--- utf8.c	19 Feb 2017 00:10:57 -0000	1.5
+++ utf8.c	2 Apr 2017 18:13:27 -0000
@@ -52,7 +52,8 @@ dangerous_locale(void) {
 
 	loc = nl_langinfo(CODESET);
 	return strcmp(loc, "US-ASCII") != 0 && strcmp(loc, "UTF-8") != 0 &&
-	    strcmp(loc, "ANSI_X3.4-1968") != 0;
+	    strcmp(loc, "ANSI_X3.4-1968") != 0 && strcmp(loc, "646") != 0 &&
+	    strcmp(loc, "") != 0;
 }
 
 static int


More information about the openssh-unix-dev mailing list