summaryrefslogtreecommitdiff
path: root/usr/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib')
-rw-r--r--usr/src/lib/gss_mechs/mech_spnego/mech/spnego_mech.c2
-rw-r--r--usr/src/lib/libbsm/common/adt.c3
-rw-r--r--usr/src/lib/libgss/g_accept_sec_context.c7
3 files changed, 5 insertions, 7 deletions
diff --git a/usr/src/lib/gss_mechs/mech_spnego/mech/spnego_mech.c b/usr/src/lib/gss_mechs/mech_spnego/mech/spnego_mech.c
index 72884ce672..472199adae 100644
--- a/usr/src/lib/gss_mechs/mech_spnego/mech/spnego_mech.c
+++ b/usr/src/lib/gss_mechs/mech_spnego/mech/spnego_mech.c
@@ -1248,7 +1248,7 @@ make_NegHints(OM_uint32 *minor_status,
&hintNameBuf,
&hintNameType);
if (major_status != GSS_S_COMPLETE) {
- gss_release_name(&minor, &hintName);
+ gss_release_name(&minor, &hintKerberosName);
return (major_status);
}
gss_release_name(&minor, &hintKerberosName);
diff --git a/usr/src/lib/libbsm/common/adt.c b/usr/src/lib/libbsm/common/adt.c
index 0fa5428f89..8c7b299e32 100644
--- a/usr/src/lib/libbsm/common/adt.c
+++ b/usr/src/lib/libbsm/common/adt.c
@@ -204,11 +204,12 @@ adt_get_mask_from_user(uid_t uid, au_mask_t *mask)
free(pwd_buff);
return (-1);
}
- free(pwd_buff);
if (au_user_mask(pwd.pw_name, mask)) {
+ free(pwd_buff);
errno = EFAULT; /* undetermined failure */
return (-1);
}
+ free(pwd_buff);
} else if (auditon(A_GETKMASK, (caddr_t)mask, sizeof (*mask)) == -1) {
return (-1);
}
diff --git a/usr/src/lib/libgss/g_accept_sec_context.c b/usr/src/lib/libgss/g_accept_sec_context.c
index 00da05bb1c..7858f5670f 100644
--- a/usr/src/lib/libgss/g_accept_sec_context.c
+++ b/usr/src/lib/libgss/g_accept_sec_context.c
@@ -223,6 +223,8 @@ gss_cred_id_t *d_cred; /* delegated cred handle */
* First call the mechanism specific display_name()
* then call gss_import_name() to create
* the union name struct cast to src_name
+ * NB: __gss_convert_name_to_union_name will
+ * "consume" (free) the name.
*/
if (internal_name != NULL) {
temp_status = __gss_convert_name_to_union_name(
@@ -235,11 +237,6 @@ gss_cred_id_t *d_cred; /* delegated cred handle */
(void) gss_release_buffer(
&t_minstat,
output_token);
- if (internal_name != GSS_C_NO_NAME)
- mech->gss_release_name(
- mech->context,
- &t_minstat,
- &internal_name);
return (temp_status);
}
if (src_name != NULL) {