Message ID | 20210415085535.1808272-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [next] can: etas_es58x: Fix potential null pointer dereference on pointer cf | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Series ignored based on subject |
On 15.04.2021 09:55:35, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > The pointer cf is being null checked earlier in the code, however the > update of the rx_bytes statistics is dereferencing cf without null > checking cf. Fix this by moving the statement into the following code > block that has a null cf check. > > Addresses-Coverity: ("Dereference after null check") > Fixes: 8537257874e9 ("can: etas_es58x: add core support for ETAS ES58X CAN USB interfaces") > Signed-off-by: Colin Ian King <colin.king@canonical.com> A somewhat different fix is already in net-next/master https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=e2b1e4b532abdd39bfb7313146153815e370d60c Marc
On 15/04/2021 10:03, Marc Kleine-Budde wrote: > On 15.04.2021 09:55:35, Colin King wrote: >> From: Colin Ian King <colin.king@canonical.com> >> >> The pointer cf is being null checked earlier in the code, however the >> update of the rx_bytes statistics is dereferencing cf without null >> checking cf. Fix this by moving the statement into the following code >> block that has a null cf check. >> >> Addresses-Coverity: ("Dereference after null check") >> Fixes: 8537257874e9 ("can: etas_es58x: add core support for ETAS ES58X CAN USB interfaces") >> Signed-off-by: Colin Ian King <colin.king@canonical.com> > > A somewhat different fix is already in net-next/master > > https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=e2b1e4b532abdd39bfb7313146153815e370d60c +1 on that > > Marc >
diff --git a/drivers/net/can/usb/etas_es58x/es58x_core.c b/drivers/net/can/usb/etas_es58x/es58x_core.c index 7222b3b6ca46..5198e1d6b6ad 100644 --- a/drivers/net/can/usb/etas_es58x/es58x_core.c +++ b/drivers/net/can/usb/etas_es58x/es58x_core.c @@ -856,9 +856,10 @@ int es58x_rx_err_msg(struct net_device *netdev, enum es58x_err error, * consistency. */ netdev->stats.rx_packets++; - netdev->stats.rx_bytes += cf->can_dlc; if (cf) { + netdev->stats.rx_bytes += cf->can_dlc; + if (cf->data[1]) cf->can_id |= CAN_ERR_CRTL; if (cf->data[2] || cf->data[3]) {