mirror of https://github.com/ARMmbed/mbed-os.git
CAN: read only up to 8 bytes
If HAL implementation writes more than 8 bytes of data, error immediately. CANMessage defines only 8 bytes of data, lenght cannot be > 8. This fixes https://github.com/ARMmbed/mbed-os/issues/15361 Signed-off-by: Martin Kojtal <martin.kojtal@arm.com>pull/15374/head
parent
81f40fc9f4
commit
518eb6d1c3
|
@ -19,6 +19,7 @@
|
|||
#if DEVICE_CAN
|
||||
|
||||
#include "platform/mbed_power_mgmt.h"
|
||||
#include "platform/mbed_error.h"
|
||||
|
||||
namespace mbed {
|
||||
|
||||
|
@ -82,6 +83,9 @@ int CAN::read(CANMessage &msg, int handle)
|
|||
{
|
||||
lock();
|
||||
int ret = can_read(&_can, &msg, handle);
|
||||
if (msg.len > 8) {
|
||||
MBED_ERROR(MBED_MAKE_ERROR(MBED_MODULE_DRIVER_CAN, MBED_ERROR_CODE_READ_FAILED), "Read tried to write more than 8 bytes");
|
||||
}
|
||||
unlock();
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue