Browse Source

uORB devices: Guard more against invalid handles fed to publish routine

sbg
Lorenz Meier 8 years ago committed by Lorenz Meier
parent
commit
c62c3c98bf
  1. 8
      src/modules/uORB/uORBDevices.cpp

8
src/modules/uORB/uORBDevices.cpp

@ -424,7 +424,13 @@ uORB::DeviceNode::publish(const orb_metadata *meta, orb_advert_t handle, const v @@ -424,7 +424,13 @@ uORB::DeviceNode::publish(const orb_metadata *meta, orb_advert_t handle, const v
uORB::DeviceNode *devnode = (uORB::DeviceNode *)handle;
int ret;
/* this is a bit risky, since we are trusting the handle in order to deref it */
/* check if the device handle is initialized */
if ((devnode == nullptr) || (meta == nullptr)) {
errno = EFAULT;
return ERROR;
}
/* check if the orb meta data matches the publication */
if (devnode->_meta != meta) {
errno = EINVAL;
return ERROR;

Loading…
Cancel
Save