From 09a692c4101928afd6796d4b85566a47030a1c6a Mon Sep 17 00:00:00 2001 From: y-okumura-isp Date: Fri, 6 Mar 2020 11:50:41 +0900 Subject: [PATCH] Fix potential leak and improve readability Signed-off-by: y-okumura-isp --- rcl/src/rcl/arguments.c | 16 +++++++--------- rcl_yaml_param_parser/src/parser.c | 5 ++--- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/rcl/src/rcl/arguments.c b/rcl/src/rcl/arguments.c index e97c6717d..15fd3d796 100644 --- a/rcl/src/rcl/arguments.c +++ b/rcl/src/rcl/arguments.c @@ -962,12 +962,10 @@ rcl_arguments_copy( rcl_allocator_t allocator = args->impl->allocator; - do { - rcl_ret_t ret = _rcl_allocate_initialized_arguments_impl(args_out, &allocator); - if (RCL_RET_OK != ret) { - return ret; - } - } while(false); + rcl_ret_t ret = _rcl_allocate_initialized_arguments_impl(args_out, &allocator); + if (RCL_RET_OK != ret) { + return ret; + } if (args->impl->num_unparsed_args) { // Copy unparsed args @@ -1014,7 +1012,7 @@ rcl_arguments_copy( args_out->impl->num_remap_rules = args->impl->num_remap_rules; for (int i = 0; i < args->impl->num_remap_rules; ++i) { args_out->impl->remap_rules[i] = rcl_get_zero_initialized_remap(); - rcl_ret_t ret = rcl_remap_copy( + ret = rcl_remap_copy( &(args->impl->remap_rules[i]), &(args_out->impl->remap_rules[i])); if (RCL_RET_OK != ret) { if (RCL_RET_OK != rcl_arguments_fini(args_out)) { @@ -1102,8 +1100,8 @@ rcl_arguments_fini( } if (NULL != args->impl->external_log_config_file) { - args->impl->allocator.deallocate(args->impl->external_log_config_file, - args->impl->allocator.state); + args->impl->allocator.deallocate( + args->impl->external_log_config_file, args->impl->allocator.state); args->impl->external_log_config_file = NULL; } diff --git a/rcl_yaml_param_parser/src/parser.c b/rcl_yaml_param_parser/src/parser.c index c3ee6188f..6ca41b8bf 100644 --- a/rcl_yaml_param_parser/src/parser.c +++ b/rcl_yaml_param_parser/src/parser.c @@ -1343,13 +1343,12 @@ static rcutils_ret_t parse_key( } ret = find_node(node_name_ns, params_st, node_idx); + allocator.deallocate(node_name_ns, allocator.state); if (RCUTILS_RET_OK != ret) { break; } - allocator.deallocate(node_name_ns, allocator.state); - - ret = rem_name_from_ns(ns_tracker, NS_TYPE_NODE, allocator); + ret = rem_name_from_ns(ns_tracker, NS_TYPE_NODE, allocator); if (RCUTILS_RET_OK != ret) { RCUTILS_SET_ERROR_MSG_WITH_FORMAT_STRING( "Internal error adding node namespace at line %d", line_num);