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