here are patches for openbsd-compat/bsd-cray.c, openbsd-compat/bsd-cray.h and configure.ac cleaning up problems from someone prettifying the cray files, additional variables added to configure and a typo of mine from the past for deattack.c.
Created attachment 514 [details] bsd-cray.c, bsd-cray.h, configure.ac, deattack.c patches patches created from openssh-SNAP-20031216.tar.gz
Patch applied, apart from the deattack.c change (which needs further consideration).
Could someone explain the deattack.c change to me? (in this bug, for posterity)
10 months, no reply == closed bug
#define HASH_ENTRYSIZE (sizeof(u_int16_t)) is probably to UNICOS 9 doing something like this: % cat h.c #include <stdio.h> typedef unsigned short u_int16_t; u_int16_t h[40]; int main (int argc, char *argv[]) { printf ("sizeof(u_int16_t) = %d\n", sizeof(u_int16_t)); printf ("sizeof(h) = %d\n", sizeof(h)); return 0; } % cc -o h h.c % ./h sizeof(u_int16_t) = 8 sizeof(h) = 320 % Assumptions that filling only two bytes of hash for an unsigned short type is a bad one on a cray (or at least on a Y-MP EL which was used to give the above information). The reason to avoid memset is less clear to me. It could be that assumptions are being made in the OpenSSH code that the upper bytes of the h[] array are zero instead of 0xffff. I have not looked closely at that part of the OpenSSH code.
OK, that makes sense: later in the code the hash values are compared directly with "h[i] != HASH_UNUSED", where HASH_UNUSED is defined as 0xffff. If sizeof(u_int16) == 8 (whoa!) and the array is filled with memset then the array values will be 0xffffffffffffffff instead of 0xffff, so that obviously won't work. I think it would be OK to commit, but with "#if (SIZEOF_SHORT_INT != 2)" instead of #ifdef _UNICOS".
Created attachment 789 [details] cray deattack patch Could someone with access to a Cray please test try this patch?
6 years with no followup == no bug. I guess nobody cares?
close resolved bugs now that openssh-5.9 has been released