aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuke Howard <lukeh@padl.com>2011-03-21 00:54:24 +0000
committerLuke Howard <lukeh@padl.com>2011-03-21 00:54:24 +0000
commit245009d3aa6c5312336f654ec32957c03bdef966 (patch)
tree7f6505e3f877bb97d66b93c17e74ab36da7eae7f /src
parent788610117b742e10d263c2624cbc41f69721ad6d (diff)
downloadkrb5-245009d3aa6c5312336f654ec32957c03bdef966.zip
krb5-245009d3aa6c5312336f654ec32957c03bdef966.tar.gz
krb5-245009d3aa6c5312336f654ec32957c03bdef966.tar.bz2
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
Diffstat (limited to 'src')
-rw-r--r--src/lib/gssapi/mechglue/gssd_pname_to_uid.c14
1 files changed, 10 insertions, 4 deletions
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)