gss: Check add_builtin() errors

This commit is contained in:
Nicolas Williams
2022-01-17 17:59:10 -06:00
parent 0bbf13722d
commit 77c048db9b

View File

@@ -230,8 +230,10 @@ add_builtin(gssapi_mech_interface mech)
free(m); free(m);
return minor_status; return minor_status;
} }
gss_add_oid_set_member(&minor_status,
&m->gm_mech.gm_mech_oid, &_gss_mech_oids); if (gss_add_oid_set_member(&minor_status, &m->gm_mech.gm_mech_oid,
&_gss_mech_oids) != GSS_S_COMPLETE)
return ENOMEM;
/* pick up the oid sets of names */ /* pick up the oid sets of names */
@@ -239,8 +241,11 @@ add_builtin(gssapi_mech_interface mech)
(*m->gm_mech.gm_inquire_names_for_mech)(&minor_status, (*m->gm_mech.gm_inquire_names_for_mech)(&minor_status,
&m->gm_mech.gm_mech_oid, &m->gm_name_types); &m->gm_mech.gm_mech_oid, &m->gm_name_types);
if (m->gm_name_types == NULL) if (m->gm_name_types == NULL &&
gss_create_empty_oid_set(&minor_status, &m->gm_name_types); gss_create_empty_oid_set(&minor_status,
&m->gm_name_types) != GSS_S_COMPLETE) {
return ENOMEM;
}
HEIM_TAILQ_INSERT_TAIL(&_gss_mechs, m, gm_link); HEIM_TAILQ_INSERT_TAIL(&_gss_mechs, m, gm_link);
return 0; return 0;
@@ -290,9 +295,15 @@ _gss_load_mech(void)
return; return;
} }
add_builtin(__gss_krb5_initialize()); if (add_builtin(__gss_krb5_initialize()))
add_builtin(__gss_spnego_initialize()); _gss_mg_log(1, "Out of memory while adding builtin Kerberos GSS "
add_builtin(__gss_ntlm_initialize()); "mechanism to the GSS mechanism switch");
if (add_builtin(__gss_spnego_initialize()))
_gss_mg_log(1, "Out of memory while adding builtin SPNEGO "
"mechanism to the GSS mechanism switch");
if (add_builtin(__gss_ntlm_initialize()))
_gss_mg_log(1, "Out of memory while adding builtin NTLM "
"mechanism to the GSS mechanism switch");
#ifdef HAVE_DLOPEN #ifdef HAVE_DLOPEN
fp = fopen(conf ? conf : _PATH_GSS_MECH, "r"); fp = fopen(conf ? conf : _PATH_GSS_MECH, "r");
@@ -463,7 +474,9 @@ _gss_load_mech(void)
out: out:
#endif #endif
add_builtin(__gss_sanon_initialize()); if (add_builtin(__gss_sanon_initialize()))
_gss_mg_log(1, "Out of memory while adding builtin SANON "
"mechanism to the GSS mechanism switch");
HEIMDAL_MUTEX_unlock(&_gss_mech_mutex); HEIMDAL_MUTEX_unlock(&_gss_mech_mutex);
} }