From 7acc5f3222eb6b88ef1828f4e2814f641c1ba0f3 Mon Sep 17 00:00:00 2001 From: Juan Oxoby Date: Fri, 14 Jun 2019 19:11:48 -0700 Subject: [PATCH] Check for nullptr. Sometimes dds_qget_userdata() returns true with a nullptr. It might be a good idea to revise its implementation. --- rmw_cyclonedds_cpp/src/rmw_node.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rmw_cyclonedds_cpp/src/rmw_node.cpp b/rmw_cyclonedds_cpp/src/rmw_node.cpp index 4098d39..bae8c61 100644 --- a/rmw_cyclonedds_cpp/src/rmw_node.cpp +++ b/rmw_cyclonedds_cpp/src/rmw_node.cpp @@ -1585,7 +1585,7 @@ static rmw_ret_t do_for_node_user_data (std::function bool { void *ud; size_t udsz; - if (dds_qget_userdata (sample.qos, &ud, &udsz)) { + if (dds_qget_userdata (sample.qos, &ud, &udsz) && ud != nullptr) { /* CycloneDDS guarantees a null-terminated user data so we pretend it's a string */ bool ret = oper (sample, static_cast (ud));