diff options
| author | wdfk-prog <[email protected]> | 2024-07-09 20:22:37 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-07-09 20:22:37 +0800 |
| commit | 15a8ebe0a09a1ca509dbf6d2a3bafae4a01f650f (patch) | |
| tree | 348a6af766cc54a4253eae3d36c174e57857163b /components/drivers/can | |
| parent | befa47807341612e409f595b4cf16d55f016ff26 (diff) | |
[components][driver][can]Fix possible memory overflow caused by RX
修复RX可能导致的内存溢出情况
#8634
Diffstat (limited to 'components/drivers/can')
| -rw-r--r-- | components/drivers/can/can.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/components/drivers/can/can.c b/components/drivers/can/can.c index 2ebab4afbc..f10e05dc55 100644 --- a/components/drivers/can/can.c +++ b/components/drivers/can/can.c @@ -43,9 +43,9 @@ static rt_err_t rt_can_init(struct rt_device *dev) /* * can interrupt routines */ -rt_inline int _can_int_rx(struct rt_can_device *can, struct rt_can_msg *data, int msgs) +rt_inline rt_ssize_t _can_int_rx(struct rt_can_device *can, struct rt_can_msg *data, rt_ssize_t msgs) { - int size; + rt_ssize_t size; struct rt_can_rx_fifo *rx_fifo; RT_ASSERT(can != RT_NULL); size = msgs; @@ -54,7 +54,7 @@ rt_inline int _can_int_rx(struct rt_can_device *can, struct rt_can_msg *data, in RT_ASSERT(rx_fifo != RT_NULL); /* read from software FIFO */ - while (msgs) + while (msgs / sizeof(struct rt_can_msg) > 0) { rt_base_t level; #ifdef RT_CAN_USING_HDR |
