From 33427e3812fad828160559b18b1566f417030bbb Mon Sep 17 00:00:00 2001 From: Michel Hidalgo Date: Mon, 24 Aug 2020 18:13:06 -0300 Subject: [PATCH] Ensure compliant publisher QoS queries. (#425) Follow-up after 8fc9ca3d98a64118590a205b2162559e17309a27. Signed-off-by: Michel Hidalgo --- rmw_fastrtps_cpp/src/rmw_publisher.cpp | 8 ++++++++ rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp | 8 ++++++++ rmw_fastrtps_shared_cpp/src/rmw_publisher.cpp | 9 --------- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/rmw_fastrtps_cpp/src/rmw_publisher.cpp b/rmw_fastrtps_cpp/src/rmw_publisher.cpp index adf25311e..4f5fc611c 100644 --- a/rmw_fastrtps_cpp/src/rmw_publisher.cpp +++ b/rmw_fastrtps_cpp/src/rmw_publisher.cpp @@ -147,6 +147,14 @@ rmw_publisher_get_actual_qos( const rmw_publisher_t * publisher, rmw_qos_profile_t * qos) { + RMW_CHECK_ARGUMENT_FOR_NULL(publisher, RMW_RET_INVALID_ARGUMENT); + RMW_CHECK_TYPE_IDENTIFIERS_MATCH( + publisher, + publisher->implementation_identifier, + eprosima_fastrtps_identifier, + return RMW_RET_INCORRECT_RMW_IMPLEMENTATION); + RMW_CHECK_ARGUMENT_FOR_NULL(qos, RMW_RET_INVALID_ARGUMENT); + return rmw_fastrtps_shared_cpp::__rmw_publisher_get_actual_qos( publisher, qos); } diff --git a/rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp b/rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp index 8864c4259..baaedcba5 100644 --- a/rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp +++ b/rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp @@ -151,6 +151,14 @@ rmw_publisher_get_actual_qos( const rmw_publisher_t * publisher, rmw_qos_profile_t * qos) { + RMW_CHECK_ARGUMENT_FOR_NULL(publisher, RMW_RET_INVALID_ARGUMENT); + RMW_CHECK_TYPE_IDENTIFIERS_MATCH( + publisher, + publisher->implementation_identifier, + eprosima_fastrtps_identifier, + return RMW_RET_INCORRECT_RMW_IMPLEMENTATION); + RMW_CHECK_ARGUMENT_FOR_NULL(qos, RMW_RET_INVALID_ARGUMENT); + return rmw_fastrtps_shared_cpp::__rmw_publisher_get_actual_qos( publisher, qos); } diff --git a/rmw_fastrtps_shared_cpp/src/rmw_publisher.cpp b/rmw_fastrtps_shared_cpp/src/rmw_publisher.cpp index 5fd26dce9..fb8cd2a49 100644 --- a/rmw_fastrtps_shared_cpp/src/rmw_publisher.cpp +++ b/rmw_fastrtps_shared_cpp/src/rmw_publisher.cpp @@ -121,17 +121,8 @@ __rmw_publisher_get_actual_qos( const rmw_publisher_t * publisher, rmw_qos_profile_t * qos) { - RMW_CHECK_ARGUMENT_FOR_NULL(publisher, RMW_RET_INVALID_ARGUMENT); - RMW_CHECK_ARGUMENT_FOR_NULL(qos, RMW_RET_INVALID_ARGUMENT); - auto info = static_cast(publisher->data); - if (info == nullptr) { - return RMW_RET_ERROR; - } eprosima::fastrtps::Publisher * fastrtps_pub = info->publisher_; - if (fastrtps_pub == nullptr) { - return RMW_RET_ERROR; - } const eprosima::fastrtps::PublisherAttributes & attributes = fastrtps_pub->getAttributes();