[30237] in CVS-changelog-for-Kerberos-V5
krb5 commit: Fix minor leak in krb5_gss_inquire_cred()
daemon@ATHENA.MIT.EDU (Greg Hudson)
Tue Jun 19 11:00:38 2018
Date: Tue, 19 Jun 2018 11:00:33 -0400
From: Greg Hudson <ghudson@mit.edu>
Message-Id: <201806191500.w5JF0Xme021922@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu
https://github.com/krb5/krb5/commit/46972c0664b7cfd70c40370c22e604efc0225e14
commit 46972c0664b7cfd70c40370c22e604efc0225e14
Author: Greg Hudson <ghudson@mit.edu>
Date: Fri Jun 15 11:40:13 2018 -0400
Fix minor leak in krb5_gss_inquire_cred()
If mechs is created but one of the generic_gss_add_oid_set_member()
calls fails, it leaks. Initialize mechs and free it in the fail
label. Also null mechs when we transfer ownership of it to the
caller, in case we later unify the success and failure exit paths.
Reported by Bean Zhang.
ticket: 8697
src/lib/gssapi/krb5/inq_cred.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/lib/gssapi/krb5/inq_cred.c b/src/lib/gssapi/krb5/inq_cred.c
index 3a73417..a8f2541 100644
--- a/src/lib/gssapi/krb5/inq_cred.c
+++ b/src/lib/gssapi/krb5/inq_cred.c
@@ -90,7 +90,7 @@ krb5_gss_inquire_cred(minor_status, cred_handle, name, lifetime_ret,
krb5_deltat lifetime;
krb5_gss_name_t ret_name;
krb5_principal princ;
- gss_OID_set mechs;
+ gss_OID_set mechs = GSS_C_NO_OID_SET;
OM_uint32 major, tmpmin, ret;
ret = GSS_S_FAILURE;
@@ -192,8 +192,10 @@ krb5_gss_inquire_cred(minor_status, cred_handle, name, lifetime_ret,
*cred_usage = cred->usage;
k5_mutex_unlock(&cred->lock);
- if (mechanisms)
+ if (mechanisms) {
*mechanisms = mechs;
+ mechs = GSS_C_NO_OID_SET;
+ }
if (cred_handle == GSS_C_NO_CREDENTIAL)
krb5_gss_release_cred(minor_status, (gss_cred_id_t *)&cred);
@@ -205,6 +207,7 @@ fail:
k5_mutex_unlock(&cred->lock);
krb5_gss_release_cred(&tmpmin, &defcred);
krb5_free_context(context);
+ (void)generic_gss_release_oid_set(&tmpmin, &mechs);
return ret;
}
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5