From 7bd168563ca81fccbb8923937a91e70c0f3d9104 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 976964f3e..2c3b606ed 100644 --- a/rmw_fastrtps_cpp/src/rmw_publisher.cpp +++ b/rmw_fastrtps_cpp/src/rmw_publisher.cpp @@ -139,6 +139,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 e9f5fe3f9..52ce14713 100644 --- a/rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp +++ b/rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp @@ -143,6 +143,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 143c7ced1..afa4b2e61 100644 --- a/rmw_fastrtps_shared_cpp/src/rmw_publisher.cpp +++ b/rmw_fastrtps_shared_cpp/src/rmw_publisher.cpp @@ -125,17 +125,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();