From 245009d3aa6c5312336f654ec32957c03bdef966 Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Mon, 21 Mar 2011 00:54:24 +0000 Subject: return GSS_S_UNAVAILABLE on localname lookup error git-svn-id: svn://anonsvn.mit.edu/krb5/users/lhoward/moonshot-mechglue-fixes@24734 dc483132-0cff-0310-8789-dd5450dbe970 --- src/lib/gssapi/mechglue/gssd_pname_to_uid.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/lib/gssapi/mechglue/gssd_pname_to_uid.c b/src/lib/gssapi/mechglue/gssd_pname_to_uid.c index 97e54d3..6eba56d 100644 --- a/src/lib/gssapi/mechglue/gssd_pname_to_uid.c +++ b/src/lib/gssapi/mechglue/gssd_pname_to_uid.c @@ -100,8 +100,10 @@ attr_pname_to_uid(OM_uint32 *minor, &value, &display_value, &more); - if (GSS_ERROR(major)) + if (GSS_ERROR(major)) { + map_error(minor, mech); break; + } localLoginUser = malloc(value.length + 1); if (localLoginUser == NULL) { @@ -124,7 +126,8 @@ attr_pname_to_uid(OM_uint32 *minor, major = GSS_S_COMPLETE; *minor = 0; break; - } + } else + major = GSS_S_UNAVAILABLE; } #endif /* !NO_PASSWORD */ @@ -182,10 +185,13 @@ gss_pname_to_uid(OM_uint32 *minor, major = GSS_S_UNAVAILABLE; - if (mech->gss_pname_to_uid != NULL) + if (mech->gss_pname_to_uid != NULL) { major = mech->gss_pname_to_uid(minor, mechNameP, mech_type, uidp); + if (GSS_ERROR(major)) + map_error(minor, mech); + } - if (major != GSS_S_COMPLETE) + if (GSS_ERROR(major)) major = attr_pname_to_uid(minor, mech, mechNameP, uidp); if (mechName != GSS_C_NO_NAME) -- cgit v1.1