From 82a28dc0fcc947aabd70426224f733d95212f797 Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Fri, 26 Oct 2018 11:39:48 +0900 Subject: [PATCH] AP_RangeFinder: check I2C dev during detect --- libraries/AP_RangeFinder/AP_RangeFinder_LightWareI2C.cpp | 4 ++++ libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarI2CXL.cpp | 4 ++++ libraries/AP_RangeFinder/AP_RangeFinder_TeraRangerI2C.cpp | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_LightWareI2C.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_LightWareI2C.cpp index a37293eaa3..ce84ab4c88 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_LightWareI2C.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_LightWareI2C.cpp @@ -37,6 +37,10 @@ AP_RangeFinder_LightWareI2C::AP_RangeFinder_LightWareI2C(RangeFinder::RangeFinde */ AP_RangeFinder_Backend *AP_RangeFinder_LightWareI2C::detect(RangeFinder::RangeFinder_State &_state, AP_HAL::OwnPtr dev) { + if (!dev) { + return nullptr; + } + AP_RangeFinder_LightWareI2C *sensor = new AP_RangeFinder_LightWareI2C(_state, std::move(dev)); diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarI2CXL.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarI2CXL.cpp index b5e585c666..f876353f12 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarI2CXL.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarI2CXL.cpp @@ -51,6 +51,10 @@ AP_RangeFinder_MaxsonarI2CXL::AP_RangeFinder_MaxsonarI2CXL(RangeFinder::RangeFin AP_RangeFinder_Backend *AP_RangeFinder_MaxsonarI2CXL::detect(RangeFinder::RangeFinder_State &_state, AP_HAL::OwnPtr dev) { + if (!dev) { + return nullptr; + } + AP_RangeFinder_MaxsonarI2CXL *sensor = new AP_RangeFinder_MaxsonarI2CXL(_state, std::move(dev)); if (!sensor) { diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_TeraRangerI2C.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_TeraRangerI2C.cpp index 3816686317..327851bc8c 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_TeraRangerI2C.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_TeraRangerI2C.cpp @@ -49,6 +49,10 @@ AP_RangeFinder_TeraRangerI2C::AP_RangeFinder_TeraRangerI2C(RangeFinder::RangeFin AP_RangeFinder_Backend *AP_RangeFinder_TeraRangerI2C::detect(RangeFinder::RangeFinder_State &_state, AP_HAL::OwnPtr i2c_dev) { + if (!i2c_dev) { + return nullptr; + } + AP_RangeFinder_TeraRangerI2C *sensor = new AP_RangeFinder_TeraRangerI2C(_state, std::move(i2c_dev)); if (!sensor) { return nullptr;