[3779] in Kerberos

home help back first fref pref prev next nref lref last post

Re: Kinit Failure with Kerberos Version 4

daemon@ATHENA.MIT.EDU (Mark W. Eichin)
Wed Aug 31 18:39:54 1994

Date: Wed, 31 Aug 1994 18:19:13 +0500
From: "Mark W. Eichin" <eichin@MIT.EDU>
To: cckeg@amber.indstate.edu (Keith Gladden)
Cc: eichin@cygnus.com
Cc: kerberos@MIT.EDU
In-Reply-To: [3775]

>> switch statement in krb_get_in_tkt (/lib/krb/krb_get_in_tkt.c at approximate
>>      line #219) falls thru to default action and returns INTK_PROT
>> result of switch(pkt_msg_type(rpkt) & ~1) is 2147479044

Oh, I remember that one. SCO was one of the first *really unpleasant*
V4 ports that we did. It took most of two months to get everything
worked out; not even Solaris was that bad (the difference was the all
of the SCO problems were SCO braindamage, but the Solaris problems
were fixed by *improving* the Kerberos code, rather than making it
worse.)

The bug, as you've probably figured out, is that the SCO native
compiler generates incorrect code for the switch statement.
pkg_msg_type(rpkt) should be returning a *single byte*... the upper 24
bits of 2147479044 are actually the *pointer value* (of rpkt, I think)
because the SCO compiler didn't zero extend the fetch.

The fix, in this case, is to use gcc, or even (supposedly) later
versions of the SCO compiler. Another alternative is to run linux
instead (one that a lot of people have chosen...)

				_Mark_ <eichin@athena.mit.edu>
				MIT Student Information Processing Board
				Cygnus Support <eichin@cygnus.com>

home help back first fref pref prev next nref lref last post