Browse Source

AP_Baro: Change to secure code, from magic number to sizeof value.

mission-4.1.18
murata 8 years ago committed by Tom Pittenger
parent
commit
87c2dfd921
  1. 6
      libraries/AP_Baro/AP_Baro_BMP085.cpp
  2. 4
      libraries/AP_Baro/AP_Baro_MS5611.cpp

6
libraries/AP_Baro/AP_Baro_BMP085.cpp

@ -53,7 +53,7 @@ AP_Baro_BMP085::AP_Baro_BMP085(AP_Baro &baro, AP_HAL::OwnPtr<AP_HAL::I2CDevice>
} }
// We read the calibration data registers // We read the calibration data registers
if (!_dev->read_registers(0xAA, buff, 22)) { if (!_dev->read_registers(0xAA, buff, sizeof(buff))) {
AP_HAL::panic("BMP085: bad calibration registers"); AP_HAL::panic("BMP085: bad calibration registers");
} }
@ -140,7 +140,7 @@ bool AP_Baro_BMP085::_read_pressure()
{ {
uint8_t buf[3]; uint8_t buf[3];
if (!_dev->read_registers(0xF6, buf, 3)) { if (!_dev->read_registers(0xF6, buf, sizeof(buf))) {
_retry_time = AP_HAL::millis() + 1000; _retry_time = AP_HAL::millis() + 1000;
_dev->set_speed(AP_HAL::Device::SPEED_LOW); _dev->set_speed(AP_HAL::Device::SPEED_LOW);
return false; return false;
@ -165,7 +165,7 @@ void AP_Baro_BMP085::_read_temp()
uint8_t buf[2]; uint8_t buf[2];
int32_t _temp_sensor; int32_t _temp_sensor;
if (!_dev->read_registers(0xF6, buf, 2)) { if (!_dev->read_registers(0xF6, buf, sizeof(buf))) {
_dev->set_speed(AP_HAL::Device::SPEED_LOW); _dev->set_speed(AP_HAL::Device::SPEED_LOW);
return; return;
} }

4
libraries/AP_Baro/AP_Baro_MS5611.cpp

@ -173,7 +173,7 @@ uint16_t AP_Baro_MS56XX::_read_prom_word(uint8_t word)
{ {
const uint8_t reg = CMD_MS56XX_PROM + (word << 1); const uint8_t reg = CMD_MS56XX_PROM + (word << 1);
uint8_t val[2]; uint8_t val[2];
if (!_dev->transfer(&reg, 1, val, 2)) { if (!_dev->transfer(&reg, 1, val, sizeof(val))) {
return 0; return 0;
} }
return (val[0] << 8) | val[1]; return (val[0] << 8) | val[1];
@ -182,7 +182,7 @@ uint16_t AP_Baro_MS56XX::_read_prom_word(uint8_t word)
uint32_t AP_Baro_MS56XX::_read_adc() uint32_t AP_Baro_MS56XX::_read_adc()
{ {
uint8_t val[3]; uint8_t val[3];
if (!_dev->transfer(&CMD_MS56XX_READ_ADC, 1, val, 3)) { if (!_dev->transfer(&CMD_MS56XX_READ_ADC, 1, val, sizeof(val))) {
return 0; return 0;
} }
return (val[0] << 16) | (val[1] << 8) | val[2]; return (val[0] << 16) | (val[1] << 8) | val[2];

Loading…
Cancel
Save