From ca4ff365f864de9097cc17a3b23282a3f5b69c74 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sun, 23 Jan 2022 23:07:36 -0500 Subject: [PATCH] lib/gssapi/mech: gss_mech_switch do not leak 'm' If there is a memory allocation failure after 'm' is allocated, 'm' will be leaked; free it. Change-Id: I625273634af207fac7c489df166cebde4d467cbc --- lib/gssapi/mech/gss_mech_switch.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/gssapi/mech/gss_mech_switch.c b/lib/gssapi/mech/gss_mech_switch.c index 09da5f7f0..b5befeed7 100644 --- a/lib/gssapi/mech/gss_mech_switch.c +++ b/lib/gssapi/mech/gss_mech_switch.c @@ -232,8 +232,10 @@ add_builtin(gssapi_mech_interface mech) } if (gss_add_oid_set_member(&minor_status, &m->gm_mech.gm_mech_oid, - &_gss_mech_oids) != GSS_S_COMPLETE) - return ENOMEM; + &_gss_mech_oids) != GSS_S_COMPLETE) { + free(m); + return ENOMEM; + } /* pick up the oid sets of names */ @@ -244,7 +246,8 @@ add_builtin(gssapi_mech_interface mech) if (m->gm_name_types == NULL && gss_create_empty_oid_set(&minor_status, &m->gm_name_types) != GSS_S_COMPLETE) { - return ENOMEM; + free(m); + return ENOMEM; } HEIM_TAILQ_INSERT_TAIL(&_gss_mechs, m, gm_link);