Add remap needed null check (#711)

* Add needed extra null check
* Add test for added check
* Add tests for nullptrs

Signed-off-by: Jorge Perez <jjperez@ekumenlabs.com>
This commit is contained in:
Jorge Perez 2020-07-20 17:31:53 -03:00 committed by Alejandro Hernández Cordero
parent 0d411f518e
commit 4e14874cf4
2 changed files with 12 additions and 0 deletions

View file

@ -43,6 +43,7 @@ rcl_remap_copy(
{ {
RCL_CHECK_ARGUMENT_FOR_NULL(rule, RCL_RET_INVALID_ARGUMENT); RCL_CHECK_ARGUMENT_FOR_NULL(rule, RCL_RET_INVALID_ARGUMENT);
RCL_CHECK_ARGUMENT_FOR_NULL(rule_out, RCL_RET_INVALID_ARGUMENT); RCL_CHECK_ARGUMENT_FOR_NULL(rule_out, RCL_RET_INVALID_ARGUMENT);
RCL_CHECK_ARGUMENT_FOR_NULL(rule->impl, RCL_RET_INVALID_ARGUMENT);
if (NULL != rule_out->impl) { if (NULL != rule_out->impl) {
RCL_SET_ERROR_MSG("rule_out must be zero initialized"); RCL_SET_ERROR_MSG("rule_out must be zero initialized");

View file

@ -596,6 +596,17 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), internal_remap_use) {
EXPECT_EQ(RCL_RET_BAD_ALLOC, rcl_remap_copy(parsed_args.impl->remap_rules, &remap_dst)); EXPECT_EQ(RCL_RET_BAD_ALLOC, rcl_remap_copy(parsed_args.impl->remap_rules, &remap_dst));
parsed_args.impl->remap_rules->impl->allocator = alloc; parsed_args.impl->remap_rules->impl->allocator = alloc;
// Not valid null ptrs
EXPECT_EQ(RCL_RET_INVALID_ARGUMENT, rcl_remap_copy(nullptr, &remap_dst));
rcl_reset_error();
EXPECT_EQ(RCL_RET_INVALID_ARGUMENT, rcl_remap_copy(parsed_args.impl->remap_rules, nullptr));
rcl_reset_error();
// Not valid empty source
rcl_remap_t remap_empty = rcl_get_zero_initialized_remap();
EXPECT_EQ(RCL_RET_INVALID_ARGUMENT, rcl_remap_copy(&remap_empty, &remap_dst));
rcl_reset_error();
// Expected usage // Expected usage
EXPECT_EQ(RCL_RET_OK, rcl_remap_copy(parsed_args.impl->remap_rules, &remap_dst)); EXPECT_EQ(RCL_RET_OK, rcl_remap_copy(parsed_args.impl->remap_rules, &remap_dst));