2019-12-15 17:54:21

by Aditya Pakki

[permalink] [raw]
Subject: [PATCH] net: caif: replace BUG_ON with recovery code

In caif_xmit, there is a crash if the ptr dev is NULL. However, by
returning the error to the callers, the error can be handled. The
patch fixes this issue.

Signed-off-by: Aditya Pakki <[email protected]>
---
drivers/net/caif/caif_serial.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/caif/caif_serial.c b/drivers/net/caif/caif_serial.c
index bd40b114d6cd..d737ceb61203 100644
--- a/drivers/net/caif/caif_serial.c
+++ b/drivers/net/caif/caif_serial.c
@@ -270,7 +270,9 @@ static int caif_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct ser_device *ser;

- BUG_ON(dev == NULL);
+ if (WARN_ON(!dev))
+ return -EINVAL;
+
ser = netdev_priv(dev);

/* Send flow off once, on high water mark */
--
2.20.1


2019-12-15 18:00:57

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] net: caif: replace BUG_ON with recovery code

Hi Aditya,

On Sun, Dec 15, 2019 at 6:51 PM Aditya Pakki <[email protected]> wrote:
> In caif_xmit, there is a crash if the ptr dev is NULL. However, by
> returning the error to the callers, the error can be handled. The
> patch fixes this issue.
>
> Signed-off-by: Aditya Pakki <[email protected]>

Thanks for your patch!

> --- a/drivers/net/caif/caif_serial.c
> +++ b/drivers/net/caif/caif_serial.c
> @@ -270,7 +270,9 @@ static int caif_xmit(struct sk_buff *skb, struct net_device *dev)
> {
> struct ser_device *ser;
>
> - BUG_ON(dev == NULL);
> + if (WARN_ON(!dev))

This will still crash the kernel with panic_on_warn.

> + return -EINVAL;
> +
> ser = netdev_priv(dev);
>
> /* Send flow off once, on high water mark */

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds