[2210] in Kerberos_V5_Development

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

Windows status

daemon@ATHENA.MIT.EDU (Doug Engert)
Fri Feb 7 11:54:15 1997

Date: Fri, 7 Feb 1997 10:52:14 -0600
From: Doug Engert <DEEngert@anl.gov>
To: "Richard Basch" <basch@lehman.com>
Cc: tytso@MIT.EDU, deengert@anl.gov, krbdev@MIT.EDU
In-Reply-To: <199702071418.JAA10025@badger.lehman.com>

Richard Basch writes:
 > 
 > There is one problem with the Win16 code... it appears that the
 > forwarding of credentials in krb5_16.dll must be broken; I get a GPF in
 > krb5_16.dll when I try to run telnet.exe and specify forwarded
 > credentials.  As far as I can tell, everything else is fine (encryption
 > works).  And, the win32 version seems to work.
 > -- 

I had that too. It is an *OLD* problem, in mk_cred.c which passes 
a int to krb5_mk_ncred_basic which expects a krb5_int32. Since there
is no prototype for the krb5_mk_ncred_basic it has the wrong data on
the stack.

-----------------------------------------------------------------


From: Doug Engert <DEEngert@anl.gov>
To: krb5-bugs@mit.edu
Subject: k5b6 Windows bug
Date: Tue, 9 Jul 96 08:23:11 CDT


I got ticket forwarding from a windows 3.1 system working this
morning, after I applied the attached change.

krb5_mk_ncred_basic is expecting a krb5_int32, but the krb5_mk_ncred
has ncred defined as an int.  With Windows 16 bit mode, since there is
not prototype for the internal function, a 16 bit value is pased on
the stack, while a 32 bit is expected.

Suggested fixes include: define ncred as krb5_int32, add a prototype,
or type cast the parameter.

*** ,mk_cred.c  Wed Mar 20 22:20:12 1996
--- mk_cred.c   Tue Jul  9 07:53:05 1996
***************
*** 299,305 ****
      }

      /* Setup creds structure */
!     if ((retval = krb5_mk_ncred_basic(context, ppcreds, ncred, keyblock,
                      &replaydata, plocal_fulladdr,
                      premote_fulladdr, pcred))) {
    goto error;
--- 299,305 ----
      }

      /* Setup creds structure */
!     if ((retval = krb5_mk_ncred_basic(context, ppcreds, (krb5_int32)ncred, key
block,
                      &replaydata, plocal_fulladdr,
                      premote_fulladdr, pcred))) {
    goto error;


 


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