FAILED: patch "[PATCH] can: j1939: j1939_tp_cmd_recv(): check the dst address of" failed to apply to 5.10-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 164051a6ab5445bd97f719f50b16db8b32174269 Mon Sep 17 00:00:00 2001
From: Zhang Changzhong <[email protected]>
Date: Thu, 28 Oct 2021 22:38:27 +0800
Subject: [PATCH] can: j1939: j1939_tp_cmd_recv(): check the dst address of
TP.CM_BAM
The TP.CM_BAM message must be sent to the global address [1], so add a check to drop TP.CM_BAM sent to a non-global address.
Without this patch, the receiver will treat the following packets as normal RTS/CTS transport:
18EC0102#20090002FF002301
18EB0102#0100000000000000
18EB0102#020000FFFFFFFFFF
[1] SAE-J1939-82 2015 A.3.3 Row 1.
net/can/j1939/transport.c +5 -0
@@ -2023,6 +2023,11 @@ static void j1939_tp_cmd_recv(struct j1939_priv *priv, struct sk_buff *skb) extd =J1939_ETP ; fallthrough;case J1939_TP_CMD_BAM : +if (cmd ==J1939_TP_CMD_BAM && !j1939_cb_is_broadcast (skcb)) { +netdev_err_once (priv->ndev,"%s: BAM to unicast (%02x), ignoring!\n" , + __func__, skcb->addr.sa); +return ; + } fallthrough;case J1939_TP_CMD_RTS :if (skcb->addr.type != extd)