From 8eb2b0ceeac5f0b2ca693aa532987463eb54c0c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Sun, 17 Aug 2003 19:01:42 +0000 Subject: [PATCH] (check_compat): avoid leaking principal when finding a match git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12579 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/gssapi/compat.c | 5 ++++- lib/gssapi/krb5/compat.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/gssapi/compat.c b/lib/gssapi/compat.c index f9de5f4ef..fc57f17b1 100644 --- a/lib/gssapi/compat.c +++ b/lib/gssapi/compat.c @@ -51,8 +51,8 @@ check_compat(OM_uint32 *minor_status, gss_name_t name, if(p == NULL) return 0; + match = NULL; for(q = p; *q; q++) { - ret = krb5_parse_name(gssapi_krb5_context, *q, &match); if (ret) break; @@ -63,7 +63,10 @@ check_compat(OM_uint32 *minor_status, gss_name_t name, } krb5_free_principal(gssapi_krb5_context, match); + match = NULL; } + if (match) + krb5_free_principal(gssapi_krb5_context, match); krb5_config_free_strings(p); if (ret) { diff --git a/lib/gssapi/krb5/compat.c b/lib/gssapi/krb5/compat.c index f9de5f4ef..fc57f17b1 100644 --- a/lib/gssapi/krb5/compat.c +++ b/lib/gssapi/krb5/compat.c @@ -51,8 +51,8 @@ check_compat(OM_uint32 *minor_status, gss_name_t name, if(p == NULL) return 0; + match = NULL; for(q = p; *q; q++) { - ret = krb5_parse_name(gssapi_krb5_context, *q, &match); if (ret) break; @@ -63,7 +63,10 @@ check_compat(OM_uint32 *minor_status, gss_name_t name, } krb5_free_principal(gssapi_krb5_context, match); + match = NULL; } + if (match) + krb5_free_principal(gssapi_krb5_context, match); krb5_config_free_strings(p); if (ret) {