Skip to content

Commit b5d8347

Browse files
committed
Fix memory errors
Signed-off-by: Stephen Brawner <[email protected]>
1 parent d6dae06 commit b5d8347

File tree

2 files changed

+23
-13
lines changed

2 files changed

+23
-13
lines changed

rcl_yaml_param_parser/test/test_namespace.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,26 +28,23 @@
2828
TEST(TestNamespace, add_name_to_ns) {
2929
rcutils_allocator_t allocator = rcutils_get_default_allocator();
3030
namespace_tracker_t ns_tracker;
31-
ns_tracker.node_ns = rcutils_strdup("", allocator);
32-
ASSERT_STREQ("", ns_tracker.node_ns);
33-
ns_tracker.parameter_ns = rcutils_strdup("", allocator);
34-
ASSERT_STREQ("", ns_tracker.parameter_ns);
35-
OSRF_TESTING_TOOLS_CPP_SCOPE_EXIT(
36-
{
37-
allocator.deallocate(ns_tracker.node_ns, allocator.state);
38-
allocator.deallocate(ns_tracker.parameter_ns, allocator.state);
39-
});
31+
ns_tracker.node_ns = nullptr;
32+
ns_tracker.parameter_ns = nullptr;
4033
ns_tracker.num_node_ns = 0;
4134
ns_tracker.num_parameter_ns = 0;
4235

4336
rcutils_ret_t ret = add_name_to_ns(&ns_tracker, nullptr, NS_TYPE_NODE, allocator);
4437
EXPECT_EQ(RCUTILS_RET_INVALID_ARGUMENT, ret) << rcutils_get_error_string().str;
45-
EXPECT_STREQ("", ns_tracker.node_ns);
38+
EXPECT_EQ(nullptr, ns_tracker.node_ns);
4639

4740
ret = add_name_to_ns(&ns_tracker, "node1", NS_TYPE_NODE, allocator);
4841
EXPECT_EQ(RCUTILS_RET_OK, ret) << rcutils_get_error_string().str;
4942
EXPECT_STREQ("node1", ns_tracker.node_ns);
5043
EXPECT_EQ(1u, ns_tracker.num_node_ns);
44+
OSRF_TESTING_TOOLS_CPP_SCOPE_EXIT(
45+
{
46+
allocator.deallocate(ns_tracker.node_ns, allocator.state);
47+
});
5148

5249
ret = add_name_to_ns(&ns_tracker, "node2", NS_TYPE_NODE, allocator);
5350
EXPECT_EQ(RCUTILS_RET_OK, ret) << rcutils_get_error_string().str;
@@ -58,6 +55,10 @@ TEST(TestNamespace, add_name_to_ns) {
5855
EXPECT_EQ(RCUTILS_RET_OK, ret) << rcutils_get_error_string().str;
5956
EXPECT_STREQ("param1", ns_tracker.parameter_ns);
6057
EXPECT_EQ(1u, ns_tracker.num_parameter_ns);
58+
OSRF_TESTING_TOOLS_CPP_SCOPE_EXIT(
59+
{
60+
allocator.deallocate(ns_tracker.parameter_ns, allocator.state);
61+
});
6162

6263
ret = add_name_to_ns(&ns_tracker, "param2", NS_TYPE_PARAM, allocator);
6364
EXPECT_EQ(RCUTILS_RET_OK, ret) << rcutils_get_error_string().str;

rcl_yaml_param_parser/test/test_parse.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ TEST(TestParse, parse_value) {
2929
rcutils_allocator_t allocator = rcutils_get_default_allocator();
3030
yaml_event_t event;
3131
event.type = YAML_NO_EVENT;
32+
event.start_mark = {0u, 0u, 0u};
33+
event.data.scalar = {NULL, NULL, NULL, 1u, 0, 0, YAML_ANY_SCALAR_STYLE};
3234

3335
bool is_seq = false;
3436
size_t node_idx = 0u;
@@ -109,6 +111,8 @@ TEST(TestParse, parse_value_sequence) {
109111
rcutils_allocator_t allocator = rcutils_get_default_allocator();
110112
yaml_event_t event;
111113
event.type = YAML_NO_EVENT;
114+
event.start_mark = {0u, 0u, 0u};
115+
event.data.scalar = {NULL, NULL, NULL, 1u, 0, 0, YAML_ANY_SCALAR_STYLE};
112116

113117
bool is_seq = true;
114118
size_t node_idx = 0u;
@@ -176,7 +180,7 @@ TEST(TestParse, parse_value_sequence) {
176180
allocator.deallocate(
177181
params_st->params[0].parameter_values[0].integer_array_value->values, allocator.state);
178182
allocator.deallocate(
179-
params_st->params[0].parameter_values[0].integer_value, allocator.state);
183+
params_st->params[0].parameter_values[0].integer_array_value, allocator.state);
180184
params_st->params[0].parameter_values[0].integer_array_value = nullptr;
181185

182186
// double value
@@ -235,13 +239,17 @@ TEST(TestParse, parse_value_sequence) {
235239
RCUTILS_RET_OK,
236240
rcutils_string_array_fini(params_st->params[0].parameter_values[0].string_array_value)) <<
237241
rcutils_get_error_string().str;
242+
allocator.deallocate(
243+
params_st->params[0].parameter_values[0].string_array_value, allocator.state);
238244
params_st->params[0].parameter_values[0].string_array_value = nullptr;
239245
}
240246

241247
TEST(TestParse, parse_value_bad_args) {
242248
rcutils_allocator_t allocator = rcutils_get_default_allocator();
243249
yaml_event_t event;
244250
event.type = YAML_NO_EVENT;
251+
event.start_mark = {0u, 0u, 0u};
252+
event.data.scalar = {NULL, NULL, NULL, 1u, 0, 0, YAML_ANY_SCALAR_STYLE};
245253

246254
bool is_seq = false;
247255
size_t node_idx = 0u;
@@ -280,8 +288,7 @@ TEST(TestParse, parse_value_bad_args) {
280288
params_st->num_nodes = 1u;
281289

282290
// event.data.scaler.value is NULL, but event.data.scalar.length > 0
283-
event.start_mark = {0u, 0u, 0u};
284-
event.data.scalar = {NULL, NULL, NULL, 1u, 0, 0, YAML_ANY_SCALAR_STYLE};
291+
event.data.scalar.value = NULL;
285292
EXPECT_EQ(
286293
RCUTILS_RET_INVALID_ARGUMENT,
287294
parse_value(event, is_seq, node_idx, parameter_idx, &seq_data_type, params_st));
@@ -317,6 +324,8 @@ TEST(TestParse, parse_key_bad_args)
317324
{
318325
yaml_event_t event;
319326
event.type = YAML_NO_EVENT;
327+
event.start_mark = {0u, 0u, 0u};
328+
320329
rcutils_allocator_t allocator = rcutils_get_default_allocator();
321330
uint32_t map_level = MAP_NODE_NAME_LVL;
322331
bool is_new_map = false;

0 commit comments

Comments
 (0)