diff --git a/topic_tools/src/tool_base_node.cpp b/topic_tools/src/tool_base_node.cpp index 9ee8527..4f2eab0 100644 --- a/topic_tools/src/tool_base_node.cpp +++ b/topic_tools/src/tool_base_node.cpp @@ -31,7 +31,9 @@ void ToolBaseNode::make_subscribe_unsubscribe_decisions() { if (auto source_info = try_discover_source()) { // always relay same topic type and QoS profile as the first available source - if (*topic_type_ != source_info->first || *qos_profile_ != source_info->second || !pub_) { + if (!topic_type_ || !qos_profile_ || *topic_type_ != source_info->first || + *qos_profile_ != source_info->second || !pub_) + { topic_type_ = source_info->first; qos_profile_ = source_info->second; pub_ = this->create_generic_publisher(output_topic_, *topic_type_, *qos_profile_);