[11436] in Kerberos-V5-bugs

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

[krbdev.mit.edu #6675] segfault in gss_export_sec_context

daemon@ATHENA.MIT.EDU (Arlene Berry" via RT)
Fri Mar 5 00:41:39 2010

Mail-followup-to: rt@krbdev.mit.edu
mail-copies-to: never
From: ""Arlene Berry" via RT" <rt-comment@krbdev.MIT.EDU>
In-Reply-To: <rt-6675@krbdev.mit.edu>
Message-ID: <rt-6675-32551.1.55982522819592@krbdev.mit.edu>
To: "'AdminCc of krbdev.mit.edu Ticket #6675'":;"'AdminCc of krbdev.mit.edu Ticket #6675'":;@MIT.EDU
Date: Fri,  5 Mar 2010 00:41:23 -0500 (EST)
Reply-To: rt-comment@krbdev.MIT.EDU
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: krb5-bugs-bounces@mit.edu

When using gss_export_sec_context on a security context that was created
using impersonated credentials, gss_export_sec_context segfaults.  The
problem is that it assumes that if ctx->initiator exists then
ctx->initiator->ad_context exists which doesn't appear to be the case
when impersonated credentials were used. The following changes fixed it
for us. 

--- krb5/src/lib/gssapi/krb5/ser_sctx.c	(revision 41102)
+++ krb5/src/lib/gssapi/krb5/ser_sctx.c	(working copy)
@@ -357,7 +357,7 @@
 
             initiator_name = ctx->initiate ? ctx->here : ctx->there;
 
-            if (initiator_name) {
+            if (initiator_name && initiator_name->ad_context) {
                 kret = krb5_size_opaque(kcontext,
                                         KV5M_AUTHDATA_CONTEXT,
                                         initiator_name->ad_context,
@@ -534,7 +534,7 @@
 
                 initiator_name = ctx->initiate ? ctx->here :
ctx->there;
 
-                if (initiator_name) {
+                if (initiator_name && initiator_name->ad_context) {
                     kret = krb5_externalize_opaque(kcontext,
 
KV5M_AUTHDATA_CONTEXT,
 
initiator_name->ad_context,
@@ -767,6 +767,8 @@
                                                    (krb5_pointer
*)&initiator_name->ad_context,
                                                    &bp,
                                                    &remain);
+                    if (kret == EINVAL)
+                        kret = 0;
                 }
             }
             /* Get trailer */


_______________________________________________
krb5-bugs mailing list
krb5-bugs@mit.edu
https://mailman.mit.edu/mailman/listinfo/krb5-bugs

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