netdev
[Top] [All Lists]

[patch 2/7] netpoll: fix null ifa_list pointer dereference

To: davem@xxxxxxxxxxxxx
Subject: [patch 2/7] netpoll: fix null ifa_list pointer dereference
From: akpm@xxxxxxxx
Date: Wed, 10 Nov 2004 16:02:22 -0800
Cc: jgarzik@xxxxxxxxx, netdev@xxxxxxxxxxx, akpm@xxxxxxxx, mpm@xxxxxxxxxxx, jmoyer@xxxxxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx
From: Matt Mackall <mpm@xxxxxxxxxxx>

This fixes a bug where netpoll can dereference a null ifa_list pointer when
not supplied an IP address at module load and the interface is up but no IP
is configured.  

Bonus: unrelated netif_running cleanup

Signed-off by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Signed-off by: Matt Mackall <mpm@xxxxxxxxxxx>

Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 25-akpm/net/core/netpoll.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN net/core/netpoll.c~netpoll-fix-null-ifa_list-pointer-dereference 
net/core/netpoll.c
--- 25/net/core/netpoll.c~netpoll-fix-null-ifa_list-pointer-dereference Wed Nov 
10 16:00:35 2004
+++ 25-akpm/net/core/netpoll.c  Wed Nov 10 16:00:35 2004
@@ -565,7 +565,7 @@ int netpoll_setup(struct netpoll *np)
                goto release;
        }
 
-       if (!(ndev->flags & IFF_UP)) {
+       if (!netif_running(ndev)) {
                unsigned short oflags;
                unsigned long atmost, atleast;
 
@@ -611,7 +611,7 @@ int netpoll_setup(struct netpoll *np)
                rcu_read_lock();
                in_dev = __in_dev_get(ndev);
 
-               if (!in_dev) {
+               if (!in_dev || !in_dev->ifa_list) {
                        rcu_read_unlock();
                        printk(KERN_ERR "%s: no IP address for %s, aborting\n",
                               np->name, np->dev_name);
_

<Prev in Thread] Current Thread [Next in Thread>
  • [patch 2/7] netpoll: fix null ifa_list pointer dereference, akpm <=