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));