[1614] in Kerberos-V5-bugs
krb5b5 telnetd bus error
daemon@ATHENA.MIT.EDU (Rita Bettenhausen)
Thu Aug 31 20:15:02 1995
Date: 31 Aug 1995 17:21:59 -0800
From: "Rita Bettenhausen" <Rita.Bettenhausen@quickmail.llnl.gov>
To: "krb5-bugs" <krb5-bugs@MIT.EDU>
Regarding: krb5b5 telnetd bus error
In Kerberos 5 Beta 5 compiled without kerberos 4 compatibility, I get a
telnetd bus error when I run the client and server on the same machine (on
SunOS 4.1.3) and the client has an expired ticket. I'm using the following
switches:
telnetd -a debug -debug 1156
telnet -d -a ritab 1156 (ritab is the name of my host)
For some reason which I haven't exactly figured out, telnetd does a second try
at getting authorization. However, the first attempt freed the authentication
context and the second attempt results in the bus error. I added a patch to
/lib/krb5/krb/rd_req.c to clear out the authorization context pointer after
freeing its context so the next go-around is fresh. This is the patch:
*** rd_req.c.orig Thu Apr 13 17:54:50 1995
--- rd_req.c Thu Aug 31 15:27:58 1995
***************
*** 98,105 ****
(void) krb5_kt_close(context, new_keytab);
cleanup_auth_context:
! if (new_auth_context && retval)
krb5_auth_con_free(context, new_auth_context);
cleanup_request:
krb5_free_ap_req(context, request);
--- 98,107 ----
(void) krb5_kt_close(context, new_keytab);
cleanup_auth_context:
! if (new_auth_context && retval) {
krb5_auth_con_free(context, new_auth_context);
+ *auth_context = NULL;
+ }
cleanup_request:
krb5_free_ap_req(context, request);
-- Rita