From 2e9ce913db271b57850c0fae3bde6043630ac47f Mon Sep 17 00:00:00 2001 From: brawner Date: Thu, 1 Oct 2020 15:06:52 -0700 Subject: [PATCH] Set yaml_variant values to NULL on finalization (#765) (#782) Signed-off-by: Stephen Brawner --- rcl_yaml_param_parser/src/parser.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rcl_yaml_param_parser/src/parser.c b/rcl_yaml_param_parser/src/parser.c index 059ab25..b7c8542 100644 --- a/rcl_yaml_param_parser/src/parser.c +++ b/rcl_yaml_param_parser/src/parser.c @@ -593,33 +593,41 @@ void rcl_yaml_variant_fini( if (NULL != param_var->bool_value) { allocator.deallocate(param_var->bool_value, allocator.state); + param_var->bool_value = NULL; } else if (NULL != param_var->integer_value) { allocator.deallocate(param_var->integer_value, allocator.state); + param_var->integer_value = NULL; } else if (NULL != param_var->double_value) { allocator.deallocate(param_var->double_value, allocator.state); + param_var->double_value = NULL; } else if (NULL != param_var->string_value) { allocator.deallocate(param_var->string_value, allocator.state); + param_var->string_value = NULL; } else if (NULL != param_var->bool_array_value) { if (NULL != param_var->bool_array_value->values) { allocator.deallocate(param_var->bool_array_value->values, allocator.state); } allocator.deallocate(param_var->bool_array_value, allocator.state); + param_var->bool_array_value = NULL; } else if (NULL != param_var->integer_array_value) { if (NULL != param_var->integer_array_value->values) { allocator.deallocate(param_var->integer_array_value->values, allocator.state); } allocator.deallocate(param_var->integer_array_value, allocator.state); + param_var->integer_array_value = NULL; } else if (NULL != param_var->double_array_value) { if (NULL != param_var->double_array_value->values) { allocator.deallocate(param_var->double_array_value->values, allocator.state); } allocator.deallocate(param_var->double_array_value, allocator.state); + param_var->double_array_value = NULL; } else if (NULL != param_var->string_array_value) { if (RCUTILS_RET_OK != rcutils_string_array_fini(param_var->string_array_value)) { // Log and continue ... RCUTILS_SAFE_FWRITE_TO_STDERR("Error deallocating string array"); } allocator.deallocate(param_var->string_array_value, allocator.state); + param_var->string_array_value = NULL; } else { /// Nothing to do to keep pclint happy }