Re: [PATCH] sb1000: prevent a potential NULL pointer dereference in sb1000_dev_ioctl()
From: Satyam Sharma <hidden>
Date: 2007-07-29 18:57:28
Also in:
lkml
Hi Michael, On Sun, 29 Jul 2007, Michael Buesch wrote:
On Sunday 29 July 2007 20:34:46 Satyam Sharma wrote:quoted
(2) !(dev->flags & IFF_UP) is bogus because the functions of this ioctl can (and should) be allowed even when the interface is not up and running.Are you _sure_? This function does poke with the device hardware. It might return crap or even machinecheck when not initialized. Hardware is probably powered down, if not IFF_UP. (I don't know if that's the case here, though).
IFF_UP checks if the _interface_ is up -- the hardware / card could still be powered up, but the interface down (ifconfing eth0 down or ip link set eth0 down). Probably what we want here is netif_device_present()? -- I think that should return true only when the *device* itself is up (as in powered) but the interface itself could be down ... Let's wait for comments from the netdev people Cc:'ed here, in that case.
quoted
drivers/net/sb1000.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-)diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c index 1de3eec..f60fe98 100644 --- a/drivers/net/sb1000.c +++ b/drivers/net/sb1000.c@@ -993,9 +993,6 @@ static int sb1000_dev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) unsigned int stats[5]; struct sb1000_private *lp = netdev_priv(dev); - if (!(dev && dev->flags & IFF_UP)) - return -ENODEV; -
Satyam