Subject: | HP-UX IA64 wrong endian |
Date: | Mon, 14 Sep 2009 19:17:15 -0400 |
From: | "Arlene Berry" <aberry@likewise.com> |
To: | <krb5-bugs@mit.edu> |
For krb5-1.7 all IA64 platforms are identified as little endian but HP-UX is big endian. It’s causing the 1.7 arcfour string to key function to use the wrong endian and it’s resulting in KRB5KDC_ERR_PREAUTH_FAILED errors. The endian is also incorrect for 1.6.3 but its arcfour string to key function works anyway. Here’s what I did to fix it for us:
Index: krb5/src/include/k5-platform.h
===================================================================
--- krb5/src/include/k5-platform.h (revision 37170)
+++ krb5/src/include/k5-platform.h (revision 37171)
@@ -476,10 +476,10 @@
As far as I know, only PDP11 and ARM (which we don't handle here)
have strange byte orders where an 8-byte value isn't laid out as
either 12345678 or 87654321. */
-# if defined(__i386__) || defined(_MIPSEL) || defined(__alpha__) || defined(__ia64__)
+# if defined(__i386__) || defined(_MIPSEL) || defined(__alpha__) || (defined(__ia64__) && !defined(__hpux))
# define K5_LE
# endif
-# if defined(__hppa__) || defined(__rs6000__) || defined(__sparc__) || defined(_MIPSEB) || defined(__m68k__) || defined(__sparc64__) || defined(__ppc__) || defined(__ppc64__)
+# if defined(__hppa__) || defined(__rs6000__) || defined(__sparc__) || defined(_MIPSEB) || defined(__m68k__) || defined(__sparc64__) || defined(__ppc__) || defined(__ppc64__) || (defined(__hpux) && defined(__ia64))
# define K5_BE
# endif
#endif