#6 gss_inquire_cred_by_mech fails with GSS_C_NO_CREDENTIAL
Closed: Fixed None Opened 8 years ago by frenche.

Hello,

According doc of gss_inquire_cred_by_mech one may: "Specify GSS_C_NO_CREDENTIAL to inquire about the default initiator principal".
However, gss-ntlmssp returns ERR_NOARG when given GSS_C_NO_CREDENTIAL.

The following fixes it for me:

diff --git a/src/gss_creds.c b/src/gss_creds.c
index b6ac11d..f481572 100644
--- a/src/gss_creds.c
+++ b/src/gss_creds.c
@@ -482,12 +482,16 @@ uint32_t gssntlm_inquire_cred(uint32_t *minor_status,
     uint32_t maj, min;

     if (cred_handle == GSS_C_NO_CREDENTIAL) {
-        set_GSSERRS(ERR_NOARG, GSS_S_NO_CRED);
-        goto done;
+        retmaj = gssntlm_acquire_cred(&retmin,
+                                      NULL, GSS_C_INDEFINITE,
+                                      NULL, GSS_C_INITIATE,
+                                      (gss_cred_id_t *)&cred,
+                                      NULL, NULL);
+        if (retmaj) goto done;
+    } else {
+        cred = (struct gssntlm_cred *)cred_handle;
     }

-    cred = (struct gssntlm_cred *)cred_handle;
-
     if (cred->type == GSSNTLM_CRED_NONE) {
         set_GSSERRS(ERR_BADARG, GSS_S_NO_CRED);
         goto done;

Metadata Update from @frenche:
- Issue assigned to simo

7 years ago

Login to comment on this ticket.

Metadata