]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Check mech cred in gss_inquire_cred_by_mech() 842/head
authorGreg Hudson <ghudson@mit.edu>
Thu, 13 Sep 2018 21:03:36 +0000 (17:03 -0400)
committerGreg Hudson <ghudson@mit.edu>
Mon, 17 Sep 2018 14:02:31 +0000 (10:02 -0400)
If gss_inquire_cred_by_mech() is called with a mechanism and there is
no corresponding mechanism credential in the union cred, return
GSS_S_NO_CRED (as Heimdal does) instead of interrogating the mechanism
about the default credential.

ticket: 8736 (new)
tags: pullup
target_version: 1.16-next
target_version: 1.15-next

src/lib/gssapi/mechglue/g_inq_cred.c

index cbe045ab9c756b9dfbca42f85c182f5fbd0096c0..4ed7774f1a4e5f634b25d7d8184f3daa1fb545e5 100644 (file)
@@ -197,6 +197,8 @@ gss_inquire_cred_by_mech(minor_status, cred_handle, mech_type, name,
 
     union_cred = (gss_union_cred_t) cred_handle;
     mech_cred = gssint_get_mechanism_cred(union_cred, selected_mech);
+    if (cred_handle != GSS_C_NO_CREDENTIAL && mech_cred == GSS_C_NO_CREDENTIAL)
+       return (GSS_S_NO_CRED);
 
     public_mech = gssint_get_public_oid(selected_mech);
     status = mech->gss_inquire_cred_by_mech(minor_status,