[leakcheck] fix leaks seen by the unit tests
This commit also improved valgrind suppression file to hide static allocations done by the GLib type system.
This commit is contained in:
parent
5192cdf7a0
commit
26d6b35a49
|
@ -91,7 +91,7 @@ lasso_server_create_assertion_as_idwsf2_security_token(LassoServer *server,
|
|||
lasso_release_gobject(assertion);
|
||||
goto cleanup;
|
||||
}
|
||||
lasso_assign_gobject(assertion->Subject->EncryptedID, encrypted_id);
|
||||
lasso_assign_new_gobject(assertion->Subject->EncryptedID, encrypted_id);
|
||||
} else {
|
||||
lasso_assign_new_gobject(assertion->Subject->NameID, name_id);
|
||||
}
|
||||
|
|
|
@ -1436,6 +1436,7 @@ lasso_saml20_login_build_authn_response_msg(LassoLogin *login)
|
|||
lasso_check_good_rc(lasso_saml20_profile_build_response_msg(profile, NULL, http_method, url));
|
||||
|
||||
cleanup:
|
||||
lasso_release_string(url);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -1493,7 +1494,7 @@ lasso_saml20_login_init_idp_initiated_authn_request(LassoLogin *login,
|
|||
return LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND;
|
||||
|
||||
lasso_assign_string(profile->remote_providerID, remote_providerID);
|
||||
lasso_assign_gobject(profile->request, lasso_samlp2_authn_request_new());
|
||||
lasso_assign_new_gobject(profile->request, lasso_samlp2_authn_request_new());
|
||||
lasso_assign_new_gobject(LASSO_SAMLP2_AUTHN_REQUEST(profile->request)->NameIDPolicy,
|
||||
lasso_samlp2_name_id_policy_new());
|
||||
lasso_assign_new_gobject(LASSO_SAMLP2_REQUEST_ABSTRACT(profile->request)->Issuer,
|
||||
|
|
|
@ -287,7 +287,6 @@ load_endpoint_type(xmlNode *xmlnode, LassoProvider *provider, LassoProviderRole
|
|||
} else {
|
||||
name = g_strdup_printf("%s %s", xmlnode->name, binding_s);
|
||||
}
|
||||
lasso_release_xml_string(binding);
|
||||
|
||||
/* Response endpoint ? */
|
||||
response_value = getSaml2MdProp(xmlnode, LASSO_SAML2_METADATA_ATTRIBUTE_RESPONSE_LOCATION);
|
||||
|
@ -301,6 +300,7 @@ load_endpoint_type(xmlNode *xmlnode, LassoProvider *provider, LassoProviderRole
|
|||
_lasso_provider_add_metadata_value_for_role(provider, role, name, (char*)value);
|
||||
|
||||
cleanup:
|
||||
lasso_release_xml_string(binding);
|
||||
lasso_release_xml_string(value);
|
||||
lasso_release_xml_string(response_value);
|
||||
lasso_release_string(name);
|
||||
|
|
|
@ -139,7 +139,7 @@ lasso_saml20_server_load_metadata_entity(LassoServer *server, LassoProviderRole
|
|||
|
||||
provider = lasso_provider_new_from_xmlnode(role, entity);
|
||||
if (provider) {
|
||||
char *name = g_strdup(provider->ProviderID);
|
||||
char *name = provider->ProviderID;
|
||||
|
||||
if (g_list_find_custom(blacklisted_entity_ids, name,
|
||||
(GCompareFunc) g_strcmp0)) {
|
||||
|
@ -153,7 +153,7 @@ lasso_saml20_server_load_metadata_entity(LassoServer *server, LassoProviderRole
|
|||
l->next->data = g_strdup(name);
|
||||
*loaded_end = l->next;
|
||||
}
|
||||
g_hash_table_insert(server->providers, name, provider);
|
||||
g_hash_table_insert(server->providers, g_strdup(name), provider);
|
||||
return 0;
|
||||
} else {
|
||||
return LASSO_SERVER_ERROR_NO_PROVIDER_LOADED;
|
||||
|
|
|
@ -890,6 +890,7 @@ _lasso_node_free_custom_element(struct _CustomElement *custom_element)
|
|||
lasso_release_string(custom_element->private_key);
|
||||
lasso_release_string(custom_element->private_key_password);
|
||||
lasso_release_string(custom_element->certificate);
|
||||
lasso_release_sec_key(custom_element->encryption_public_key);
|
||||
}
|
||||
lasso_release(custom_element);
|
||||
}
|
||||
|
|
|
@ -1840,6 +1840,13 @@ START_TEST(test10_test_alldumps)
|
|||
lasso_release_string(node_dump);
|
||||
lasso_release_gobject(node2);
|
||||
lasso_release_gobject(node);
|
||||
/* test serialization / deserialization of KeyInfoConfirmationDataType */
|
||||
node = LASSO_NODE(lasso_saml2_key_info_confirmation_data_type_new());
|
||||
node_dump = lasso_node_dump(node);
|
||||
fail_unless((node2 = lasso_node_new_from_dump(node_dump)) != NULL, "restoring dump failed after lasso_saml2_key_info_confirmation_data_type_new");
|
||||
lasso_release_string(node_dump);
|
||||
lasso_release_gobject(node2);
|
||||
lasso_release_gobject(node);
|
||||
#endif
|
||||
/* test deserialization of saml2:EncryptedAssertion" */
|
||||
const char *encrypted_element_xml[] = {
|
||||
|
@ -1873,10 +1880,6 @@ START_TEST(test10_test_alldumps)
|
|||
lasso_release_doc(xmldoc);
|
||||
++iter;
|
||||
}
|
||||
/* test serialization / deserialization of KeyInfoConfirmationDataType */
|
||||
node = LASSO_NODE(lasso_saml2_key_info_confirmation_data_type_new());
|
||||
printf("%s\n", lasso_node_debug(node, 10));
|
||||
lasso_release_gobject(node);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
@ -1976,6 +1979,7 @@ START_TEST(test13_test_lasso_server_load_metadata)
|
|||
check_equals(g_list_length(loaded_entity_ids), 283);
|
||||
check_equals(g_hash_table_size(server->providers), 393);
|
||||
#endif
|
||||
lasso_release_list_of_strings(loaded_entity_ids);
|
||||
|
||||
lasso_release_gobject(server);
|
||||
}
|
||||
|
|
|
@ -88,6 +88,7 @@ END_TEST
|
|||
START_TEST(indexed_endpoints_20101008)
|
||||
{
|
||||
LassoProvider *provider = NULL;
|
||||
char *str;
|
||||
char *meta01 = "<md:EntityDescriptor entityID=\"google.com\" xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\">\n\
|
||||
<SPSSODescriptor protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">\n\
|
||||
<AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact\" Location=\"wrong\" index=\"1\" />\n\
|
||||
|
@ -115,27 +116,51 @@ START_TEST(indexed_endpoints_20101008)
|
|||
|
||||
provider = lasso_provider_new_from_buffer(LASSO_PROVIDER_ROLE_SP, meta01, NULL, NULL);
|
||||
check_not_null(provider);
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, NULL), "ok");
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "0"), "ok");
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "1"), "wrong");
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, NULL);
|
||||
check_str_equals(str, "ok");
|
||||
g_free(str);
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, "0");
|
||||
check_str_equals(str, "ok");
|
||||
g_free(str);
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, "1");
|
||||
check_str_equals(str, "wrong");
|
||||
g_free(str);
|
||||
lasso_release_gobject(provider);
|
||||
provider = lasso_provider_new_from_buffer(LASSO_PROVIDER_ROLE_SP, meta02, NULL, NULL);
|
||||
check_not_null(provider);
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, NULL), "ok");
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "0"), "wrong");
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "1"), "ok");
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, NULL);
|
||||
check_str_equals(str, "ok");
|
||||
g_free(str);
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, "0");
|
||||
check_str_equals(str, "wrong");
|
||||
g_free(str);
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, "1");
|
||||
check_str_equals(str, "ok");
|
||||
g_free(str);
|
||||
lasso_release_gobject(provider);
|
||||
provider = lasso_provider_new_from_buffer(LASSO_PROVIDER_ROLE_SP, meta03, NULL, NULL);
|
||||
check_not_null(provider);
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, NULL), "ok");
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "0"), "wrong");
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "1"), "ok");
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, NULL);
|
||||
check_str_equals(str, "ok");
|
||||
g_free(str);
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, "0");
|
||||
check_str_equals(str, "wrong");
|
||||
g_free(str);
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, "1");
|
||||
check_str_equals(str, "ok");
|
||||
g_free(str);
|
||||
lasso_release_gobject(provider);
|
||||
provider = lasso_provider_new_from_buffer(LASSO_PROVIDER_ROLE_SP, meta04, NULL, NULL);
|
||||
check_not_null(provider);
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, NULL), "ok");
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "0"), "wrong");
|
||||
check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "1"), "ok");
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, NULL);
|
||||
check_str_equals(str, "ok");
|
||||
g_free(str);
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, "0");
|
||||
check_str_equals(str, "wrong");
|
||||
g_free(str);
|
||||
str = lasso_provider_get_assertion_consumer_service_url(provider, "1");
|
||||
check_str_equals(str, "ok");
|
||||
g_free(str);
|
||||
lasso_release_gobject(provider);
|
||||
}
|
||||
END_TEST
|
||||
|
|
|
@ -165,3 +165,42 @@
|
|||
fun:g_hash_table_new
|
||||
fun:g_quark_from_static_string
|
||||
}
|
||||
{
|
||||
g_type_init
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
...
|
||||
fun:g_type_init
|
||||
}
|
||||
{
|
||||
g_type_init
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
...
|
||||
fun:g_type_init
|
||||
}
|
||||
{
|
||||
g_type_init
|
||||
Memcheck:Leak
|
||||
fun:realloc
|
||||
...
|
||||
fun:g_type_init
|
||||
}
|
||||
{
|
||||
register type
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
...
|
||||
fun:g_type_register_static
|
||||
...
|
||||
fun:lasso_*get_type
|
||||
}
|
||||
{
|
||||
register type
|
||||
Memcheck:Leak
|
||||
fun:realloc
|
||||
...
|
||||
fun:g_type_register_static
|
||||
...
|
||||
fun:lasso_*get_type
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue