diff options
author | Greg Hudson <ghudson@mit.edu> | 2011-07-22 16:56:36 +0000 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2011-07-22 16:56:36 +0000 |
commit | bd18687a705a8a6cdcb7c140764d1a7c6a3381b5 (patch) | |
tree | 13e38b05184ab2461e44446de8dc50d34c7fa771 /src | |
parent | 648e4b9fa3f36f10e517b4e6b80329980603d17c (diff) | |
download | krb5-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.c | 14 |
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; |