From 98c53db057dfde8120c25b5f71a7d417825f61b0 Mon Sep 17 00:00:00 2001 From: Erik Boasson Date: Wed, 19 Dec 2018 12:38:31 +0100 Subject: [PATCH] fix leak of config data if a domain id problem leads to an initialization failure Signed-off-by: Erik Boasson --- src/core/ddsc/src/dds_init.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/ddsc/src/dds_init.c b/src/core/ddsc/src/dds_init.c index cc224c4..6f66e2c 100644 --- a/src/core/ddsc/src/dds_init.c +++ b/src/core/ddsc/src/dds_init.c @@ -88,7 +88,7 @@ dds_init(dds_domainid_t domain) { DDS_ERROR("requested domain id %d is out of range\n", domain); ret = DDS_ERRNO(DDS_RETCODE_ERROR); - goto fail_config; + goto fail_config_domainid; } else if (config.domainId.isdefault) { @@ -98,7 +98,7 @@ dds_init(dds_domainid_t domain) { DDS_ERROR("requested domain id %d is inconsistent with configured value %d\n", domain, config.domainId.value); ret = DDS_ERRNO(DDS_RETCODE_ERROR); - goto fail_config; + goto fail_config_domainid; } } @@ -190,6 +190,7 @@ fail_servicelease_new: thread_states_fini(); fail_rtps_config: dds__builtin_fini(); +fail_config_domainid: dds_global.m_default_domain = DDS_DOMAIN_DEFAULT; config_fini (dds_cfgst); dds_cfgst = NULL;