Skip to content
This repository has been archived by the owner on Jun 21, 2023. It is now read-only.

subscriptions, services and clients pointer arguments are not checked for NULL #260

Closed
dejanpan opened this issue Oct 25, 2017 · 0 comments · Fixed by #261, ros2/rmw_fastrtps#164 or ros2/rmw_opensplice#208

Comments

@dejanpan
Copy link

Bug report

Required Info:

Steps to reproduce issue

I did not write a test case but I can if needed

Expected behavior

NA

Actual behavior

NA

Additional information

I will provide a PR.

Solution should be like this:

  // add a condition for each subscriber
  if (subscriptions) {
    for (size_t i = 0; i < subscriptions->subscriber_count; ++i) {
      OpenSpliceStaticSubscriberInfo *subscriber_info =
        static_cast<OpenSpliceStaticSubscriberInfo *>(subscriptions->subscribers[i]);
      if (!subscriber_info) {
        RMW_SET_ERROR_MSG("subscriber info handle is null");
        return RMW_RET_ERROR;
      }
      DDS::ReadCondition *read_condition = subscriber_info->read_condition;
      if (!read_condition) {
        RMW_SET_ERROR_MSG("read condition handle is null");
        return RMW_RET_ERROR;
      }
      rmw_ret_t status = check_attach_condition_error(
        dds_waitset->attach_condition(read_condition));
      if (status != RMW_RET_OK) {
        return status;
      }
    }
  }

@serge-nikulin fyi

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
1 participant