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
This commit is contained in:
Jeffrey Altman
2022-01-23 23:07:36 -05:00
parent 693191b23d
commit ca4ff365f8

View File

@@ -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);