From 0ec994801f5f3721d41bc56685f349414f8ab337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dino=20H=C3=BCllmann?= Date: Fri, 21 Sep 2018 10:32:01 +0200 Subject: [PATCH 1/3] Fix memory error due to missing rosout_disable_topics_generation parameter --- clients/roscpp/src/libros/rosout_appender.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clients/roscpp/src/libros/rosout_appender.cpp b/clients/roscpp/src/libros/rosout_appender.cpp index f22cd95965..c89a650bf0 100644 --- a/clients/roscpp/src/libros/rosout_appender.cpp +++ b/clients/roscpp/src/libros/rosout_appender.cpp @@ -106,7 +106,8 @@ void ROSOutAppender::log(::ros::console::Level level, const char* str, const cha // check parameter server/cache for omit_topics flag // the same parameter is checked in rosout.py for the same purpose - ros::param::getCached("/rosout_disable_topics_generation", disable_topics_); + if (!ros::param::getCached("/rosout_disable_topics_generation", disable_topics_)) + disable_topics_ = false; if (!disable_topics_){ this_node::getAdvertisedTopics(msg->topics); From 7c9e87fcbd4288ee1557390f5f9a40bd8d6b6e0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dino=20H=C3=BCllmann?= Date: Fri, 21 Sep 2018 12:50:49 +0200 Subject: [PATCH 2/3] Initialise disable_topics_ in constructor of ROSOutAppender --- clients/roscpp/src/libros/rosout_appender.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clients/roscpp/src/libros/rosout_appender.cpp b/clients/roscpp/src/libros/rosout_appender.cpp index c89a650bf0..de462ac3d0 100644 --- a/clients/roscpp/src/libros/rosout_appender.cpp +++ b/clients/roscpp/src/libros/rosout_appender.cpp @@ -47,6 +47,7 @@ namespace ros ROSOutAppender::ROSOutAppender() : shutting_down_(false) +, disable_topics_(false) , publish_thread_(boost::bind(&ROSOutAppender::logThread, this)) { AdvertiseOptions ops; @@ -107,7 +108,9 @@ void ROSOutAppender::log(::ros::console::Level level, const char* str, const cha // check parameter server/cache for omit_topics flag // the same parameter is checked in rosout.py for the same purpose if (!ros::param::getCached("/rosout_disable_topics_generation", disable_topics_)) - disable_topics_ = false; + { + disable_topics_ = false; + } if (!disable_topics_){ this_node::getAdvertisedTopics(msg->topics); From 84d80642b5d9da54f655a485e5abce0a4a1ebdb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dino=20H=C3=BCllmann?= Date: Fri, 21 Sep 2018 13:02:25 +0200 Subject: [PATCH 3/3] Removed security check for rosout_disable_topics_generation parameter in favour of a class initialiser --- clients/roscpp/src/libros/rosout_appender.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/clients/roscpp/src/libros/rosout_appender.cpp b/clients/roscpp/src/libros/rosout_appender.cpp index de462ac3d0..08e69b654e 100644 --- a/clients/roscpp/src/libros/rosout_appender.cpp +++ b/clients/roscpp/src/libros/rosout_appender.cpp @@ -107,10 +107,7 @@ void ROSOutAppender::log(::ros::console::Level level, const char* str, const cha // check parameter server/cache for omit_topics flag // the same parameter is checked in rosout.py for the same purpose - if (!ros::param::getCached("/rosout_disable_topics_generation", disable_topics_)) - { - disable_topics_ = false; - } + ros::param::getCached("/rosout_disable_topics_generation", disable_topics_); if (!disable_topics_){ this_node::getAdvertisedTopics(msg->topics);