diff --git a/libraries/AP_CANManager/AP_SLCANIface.cpp b/libraries/AP_CANManager/AP_SLCANIface.cpp index 62ccd0e44e..0656cece98 100644 --- a/libraries/AP_CANManager/AP_SLCANIface.cpp +++ b/libraries/AP_CANManager/AP_SLCANIface.cpp @@ -721,11 +721,11 @@ int16_t SLCAN::CANIface::receive(AP_HAL::CANFrame& out_frame, uint64_t& rx_time, uint32_t num_bytes = _port->available_locked(_serial_lock_key); // flush bytes from port while (num_bytes--) { - int16_t ret = _port->read_locked(_serial_lock_key); - if (ret < 0) { + uint8_t b; + if (!_port->read_locked(_serial_lock_key, b)) { break; } - addByte(ret); + addByte(b); if (!rx_queue_.space()) { break; }