From bcfb4decb0dc0ea692b04eac95dd6abd6afd2917 Mon Sep 17 00:00:00 2001 From: xucheng5 Date: Fri, 18 Aug 2023 15:32:45 +0800 Subject: [PATCH] socketcan : fixed CAN ID cast error args can_id for recv_filter doesn't work properly Signed-off-by: xucheng5 --- net/can/can_recvmsg.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/net/can/can_recvmsg.c b/net/can/can_recvmsg.c index d3234b06a5e..66639d42eee 100644 --- a/net/can/can_recvmsg.c +++ b/net/can/can_recvmsg.c @@ -344,7 +344,10 @@ static uint16_t can_recvfrom_eventhandler(FAR struct net_driver_s *dev, * when is valid then complete the read action. */ #ifdef CONFIG_NET_CANPROTO_OPTIONS - if (can_recv_filter(conn, (canid_t) *dev->d_appdata) == 0) + canid_t can_id; + memcpy(&can_id, dev->d_appdata, sizeof(canid_t)); + + if (can_recv_filter(conn, can_id) == 0) { flags &= ~CAN_NEWDATA; return flags;