summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2011-07-22 16:56:36 +0000
committerGreg Hudson <ghudson@mit.edu>2011-07-22 16:56:36 +0000
commitbd18687a705a8a6cdcb7c140764d1a7c6a3381b5 (patch)
tree13e38b05184ab2461e44446de8dc50d34c7fa771 /src
parent648e4b9fa3f36f10e517b4e6b80329980603d17c (diff)
downloadkrb5-bd18687a705a8a6cdcb7c140764d1a7c6a3381b5.tar.gz
krb5-bd18687a705a8a6cdcb7c140764d1a7c6a3381b5.tar.xz
krb5-bd18687a705a8a6cdcb7c140764d1a7c6a3381b5.zip
Fix gss_set_cred_option cred creation with no name
When creating a cred in the mechglue with gss_acquire_cred, the mechanism is allowed to return no name from gss_inquire_cred. But in the analagous operation in gss_set_cred_option, that would result in an error from gss_display_name. Make the call to gss_display_name conditional on the mechanism name being set. Reported by Andrew Bartlett. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25037 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/gssapi/mechglue/g_set_cred_option.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/lib/gssapi/mechglue/g_set_cred_option.c b/src/lib/gssapi/mechglue/g_set_cred_option.c
index 897c84fe02..b530b1e053 100644
--- a/src/lib/gssapi/mechglue/g_set_cred_option.c
+++ b/src/lib/gssapi/mechglue/g_set_cred_option.c
@@ -85,12 +85,14 @@ alloc_union_cred(OM_uint32 *minor_status,
if (status != GSS_S_COMPLETE)
goto cleanup;
- status = mech->gss_display_name(minor_status,
- mech_name,
- &cred->auxinfo.name,
- &cred->auxinfo.name_type);
- if (status != GSS_S_COMPLETE)
- goto cleanup;
+ if (mech_name != GSS_C_NO_NAME) {
+ status = mech->gss_display_name(minor_status,
+ mech_name,
+ &cred->auxinfo.name,
+ &cred->auxinfo.name_type);
+ if (status != GSS_S_COMPLETE)
+ goto cleanup;
+ }
status = GSS_S_COMPLETE;
*pcred = cred;