Thread (3 messages) 3 messages, 3 authors, 2025-11-26

Re: [PATCH v3] net/sched: em_canid: fix uninit-value in em_canid_match

From: Eric Dumazet <edumazet@google.com>
Date: 2025-11-26 09:04:04
Also in: linux-can, linux-kernel-mentees, lkml

On Wed, Nov 26, 2025 at 12:57 AM [off-list ref] wrote:
quoted hunk ↗ jump to hunk
From: Shaurya Rane <redacted>

Use pskb_may_pull() to ensure a complete CAN frame is present in the
linear data buffer before reading the CAN ID. A simple skb->len check
is insufficient because it only verifies the total data length but does
not guarantee the data is present in skb->data (it could be in
fragments).

pskb_may_pull() both validates the length and pulls fragmented data
into the linear buffer if necessary, making it safe to directly
access skb->data.

Reported-by: syzbot+5d8269a1e099279152bc@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=5d8269a1e099279152bc
Fixes: f057bbb6f9ed ("net: em_canid: Ematch rule to match CAN frames according to their identifiers")
Signed-off-by: Shaurya Rane <redacted>
---
v3: Use CAN_MTU to validate a complete CAN frame is present
v2: Use pskb_may_pull() instead of skb->len check to properly
    handle fragmented skbs
---
 net/sched/em_canid.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/net/sched/em_canid.c b/net/sched/em_canid.c
index 5337bc462755..2d27f91d8441 100644
--- a/net/sched/em_canid.c
+++ b/net/sched/em_canid.c
@@ -99,6 +99,9 @@ static int em_canid_match(struct sk_buff *skb, struct tcf_ematch *m,
        int i;
        const struct can_filter *lp;

+       if (!pskb_may_pull(skb, CAN_MTU))
+               return 0;
+
        can_id = em_canid_get_id(skb);

        if (can_id & CAN_EFF_FLAG) {
For your next netdev patches, please read
Documentation/process/maintainer-netdev.rst

Resending after review
~~~~~~~~~~~~~~~~~~~~~~

Allow at least 24 hours to pass between postings. This will ensure reviewers
from all geographical locations have a chance to chime in. Do not wait
too long (weeks) between postings either as it will make it harder for reviewers
to recall all the context.

Thank you.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help