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:
@@ -232,8 +232,10 @@ add_builtin(gssapi_mech_interface mech)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (gss_add_oid_set_member(&minor_status, &m->gm_mech.gm_mech_oid,
|
if (gss_add_oid_set_member(&minor_status, &m->gm_mech.gm_mech_oid,
|
||||||
&_gss_mech_oids) != GSS_S_COMPLETE)
|
&_gss_mech_oids) != GSS_S_COMPLETE) {
|
||||||
return ENOMEM;
|
free(m);
|
||||||
|
return ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
/* pick up the oid sets of names */
|
/* pick up the oid sets of names */
|
||||||
|
|
||||||
@@ -244,7 +246,8 @@ add_builtin(gssapi_mech_interface mech)
|
|||||||
if (m->gm_name_types == NULL &&
|
if (m->gm_name_types == NULL &&
|
||||||
gss_create_empty_oid_set(&minor_status,
|
gss_create_empty_oid_set(&minor_status,
|
||||||
&m->gm_name_types) != GSS_S_COMPLETE) {
|
&m->gm_name_types) != GSS_S_COMPLETE) {
|
||||||
return ENOMEM;
|
free(m);
|
||||||
|
return ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
HEIM_TAILQ_INSERT_TAIL(&_gss_mechs, m, gm_link);
|
HEIM_TAILQ_INSERT_TAIL(&_gss_mechs, m, gm_link);
|
||||||
|
Reference in New Issue
Block a user