[Patch] ariadne: fix possible null dereference

Subsystems: networking drivers, the rest

STALE5666d

4 messages, 4 authors, 2011-03-07 · open the first message on its own page

[Patch] ariadne: fix possible null dereference

From: <hidden>
Date: 2011-03-06 07:08:35

Hi Randy,
I have tested my patch, and it is ok now.
Could you please try patching again? Sorry for previous trouble.
Thank you!
 
Jinqiu
------------------------------------------------------
This patch fixes bugzilla #13853:
https://bugzilla.kernel.org/show_bug.cgi?id=13853

The patch removes dereference of 'dev' after testing for NULL.

Signed-off-by: Jinqiu Yang<redacted>
---
 ariadne.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ariadne.c b/drivers/net/ariadne.c
--- a/drivers/net/ariadne.c	2011-03-04 11:16:42.332164362 -0500
+++ b/drivers/net/ariadne.c	2011-03-05 21:11:52.949164759 -0500
@@ -420,7 +420,7 @@ static inline void ariadne_reset(struct 
 static irqreturn_t ariadne_interrupt(int irq, void *data)
 {
     struct net_device *dev = (struct net_device *)data;
-    volatile struct Am79C960 *lance = (struct Am79C960*)dev->base_addr;
+    volatile struct Am79C960 *lance;
     struct ariadne_private *priv;
     int csr0, boguscnt;
     int handled = 0;
@@ -430,6 +430,7 @@ static irqreturn_t ariadne_interrupt(int
 	return IRQ_NONE;
     }
 
+    lance = (struct Am79C960 *)dev->base_addr;
     lance->RAP = CSR0;			/* PCnet-ISA Controller Status */
 
     if (!(lance->RDP & INTR))		/* Check if any interrupt has been */

Re: [Patch] ariadne: fix possible null dereference

From: Randy Dunlap <hidden>
Date: 2011-03-06 19:11:45

On Sun, 6 Mar 2011 02:08:32 -0500 j223yang@asset.uwaterloo.ca wrote:
Hi Randy,
I have tested my patch, and it is ok now.
Could you please try patching again? Sorry for previous trouble.
Thank you!
Acked-by: Randy Dunlap <redacted>

Thanks.
quoted hunk
Jinqiu
------------------------------------------------------
This patch fixes bugzilla #13853:
https://bugzilla.kernel.org/show_bug.cgi?id=13853

The patch removes dereference of 'dev' after testing for NULL.

Signed-off-by: Jinqiu Yang<redacted>
---
 ariadne.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ariadne.c b/drivers/net/ariadne.c
--- a/drivers/net/ariadne.c	2011-03-04 11:16:42.332164362 -0500
+++ b/drivers/net/ariadne.c	2011-03-05 21:11:52.949164759 -0500
@@ -420,7 +420,7 @@ static inline void ariadne_reset(struct 
 static irqreturn_t ariadne_interrupt(int irq, void *data)
 {
     struct net_device *dev = (struct net_device *)data;
-    volatile struct Am79C960 *lance = (struct Am79C960*)dev->base_addr;
+    volatile struct Am79C960 *lance;
     struct ariadne_private *priv;
     int csr0, boguscnt;
     int handled = 0;
@@ -430,6 +430,7 @@ static irqreturn_t ariadne_interrupt(int
 	return IRQ_NONE;
     }
 
+    lance = (struct Am79C960 *)dev->base_addr;
     lance->RAP = CSR0;			/* PCnet-ISA Controller Status */
 
     if (!(lance->RDP & INTR))		/* Check if any interrupt has been */

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

Re: [Patch] ariadne: fix possible null dereference

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2011-03-06 20:00:18

On Sun, Mar 6, 2011 at 20:11, Randy Dunlap [off-list ref] wrote:
On Sun, 6 Mar 2011 02:08:32 -0500 j223yang@asset.uwaterloo.ca wrote:
quoted
Hi Randy,
I have tested my patch, and it is ok now.
Could you please try patching again? Sorry for previous trouble.
Thank you!
Acked-by: Randy Dunlap <redacted>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
quoted
------------------------------------------------------
This patch fixes bugzilla #13853:
https://bugzilla.kernel.org/show_bug.cgi?id=13853

The patch removes dereference of 'dev' after testing for NULL.

Signed-off-by: Jinqiu Yang<redacted>
---
 ariadne.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ariadne.c b/drivers/net/ariadne.c
--- a/drivers/net/ariadne.c   2011-03-04 11:16:42.332164362 -0500
+++ b/drivers/net/ariadne.c   2011-03-05 21:11:52.949164759 -0500
@@ -420,7 +420,7 @@ static inline void ariadne_reset(struct
 static irqreturn_t ariadne_interrupt(int irq, void *data)
 {
     struct net_device *dev = (struct net_device *)data;
-    volatile struct Am79C960 *lance = (struct Am79C960*)dev->base_addr;
+    volatile struct Am79C960 *lance;
     struct ariadne_private *priv;
     int csr0, boguscnt;
     int handled = 0;
@@ -430,6 +430,7 @@ static irqreturn_t ariadne_interrupt(int
      return IRQ_NONE;
     }

+    lance = (struct Am79C960 *)dev->base_addr;
     lance->RAP = CSR0;                       /* PCnet-ISA Controller Status */

     if (!(lance->RDP & INTR))                /* Check if any interrupt has been */
Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

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

Re: [Patch] ariadne: fix possible null dereference

From: David Miller <davem@davemloft.net>
Date: 2011-03-07 02:07:22

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Sun, 6 Mar 2011 21:00:13 +0100
On Sun, Mar 6, 2011 at 20:11, Randy Dunlap [off-list ref] wrote:
quoted
On Sun, 6 Mar 2011 02:08:32 -0500 j223yang@asset.uwaterloo.ca wrote:
quoted
Hi Randy,
I have tested my patch, and it is ok now.
Could you please try patching again? Sorry for previous trouble.
Thank you!
Acked-by: Randy Dunlap <redacted>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
People really don't actually read patches, I think.

Show me how dev can even be NULL here, it simply can't.

So the correct fix is to remove the dev==NULL check altogether.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help