Debugging ssh-keygen dsa on Solaris8
Lutz Jaenicke
Lutz.Jaenicke at aet.TU-Cottbus.DE
Wed Jul 25 19:54:37 EST 2001
On Tue, Jul 24, 2001 at 02:58:31PM -0500, Scott Burch wrote:
> (If there is anything else I can do to help let me know. The system is
> 5.8 Generic_108528-08 with the recommended patch cluster from July 11th.
> This is an Ultra10 workstation) I also have the same problem using gcc
> 2.95.3 on Solaris 8 and Solaris 2.6.
You are receiving a BUS error, which means that something is not properly
aligned (e.g. omething is on a "odd" 4byte boundary while it should be on a
8 byte boundary).
Please understand that I don't have Solaris around, so I can only give
you a wild guess. I would think, that the OpenSSL library was compiled
with some "64bit-alignment flag" (or maybe for some 64bit processor), while
OpenSSH was compiled without this flag. Hence the members of the structure
are not properly aligned and it will later fail in the OpenSSL library.
> Reading ssh-keygen
...
> program terminated by signal BUS (invalid address alignment)
> Current function is DSA_new_method (optimized)
> 127 ret->flags=ret->meth->flags;
> (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx)
> where
> =>[1] DSA_new_method(meth = ???) (optimized), at 0x4b6b8 (line ~127) in
> "dsa_lib.c"
At this point a member of a structure is accessed. malloc() always tends
to return data aligned for the worst case, so it only fails within
a structure, which is not properly aligned.
In any case: if the alignement (and hence the position) of members in
a structure is wrong, the program must fail anyway, as the routines
accessing the members will pick up wrong data.
Best regards,
Lutz
--
Lutz Jaenicke Lutz.Jaenicke at aet.TU-Cottbus.DE
BTU Cottbus http://www.aet.TU-Cottbus.DE/personen/jaenicke/
Lehrstuhl Allgemeine Elektrotechnik Tel. +49 355 69-4129
Universitaetsplatz 3-4, D-03044 Cottbus Fax. +49 355 69-4153
More information about the openssh-unix-dev
mailing list