Skip to content

Commit ddeeb7d

Browse files
oleremmarckleinebudde
authored andcommitted
can: j1939: j1939_can_recv(): add priv refcounting
j1939_can_recv() can be called in parallel with socket release. In this case sk_release and sk_destruct can be done earlier than j1939_can_recv() is processed. Reported-by: [email protected] Reported-by: [email protected] Reported-by: [email protected] Fixes: 9d71dd0 ("can: add support of SAE J1939 protocol") Signed-off-by: Oleksij Rempel <[email protected]>
1 parent 8d7a5f0 commit ddeeb7d

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

net/can/j1939/main.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ static void j1939_can_recv(struct sk_buff *iskb, void *data)
5151
if (!skb)
5252
return;
5353

54+
j1939_priv_get(priv);
5455
can_skb_set_owner(skb, iskb->sk);
5556

5657
/* get a pointer to the header of the skb
@@ -104,6 +105,7 @@ static void j1939_can_recv(struct sk_buff *iskb, void *data)
104105
j1939_simple_recv(priv, skb);
105106
j1939_sk_recv(priv, skb);
106107
done:
108+
j1939_priv_put(priv);
107109
kfree_skb(skb);
108110
}
109111

0 commit comments

Comments
 (0)