diff options
author | Stefan Schmidt <stefan@datenfreihafen.org> | 2010-04-26 11:20:32 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-26 11:20:32 -0700 |
commit | 93c0c8b4a5a174645550d444bd5c3ff0cccf74cb (patch) | |
tree | e84e611cea672cb2354ebfcaad11d6a22ead4b04 /net/ieee802154 | |
parent | dc8bf1b1a6edfc92465526de19772061302f0929 (diff) | |
download | kernel-common-93c0c8b4a5a174645550d444bd5c3ff0cccf74cb.tar.gz kernel-common-93c0c8b4a5a174645550d444bd5c3ff0cccf74cb.tar.bz2 kernel-common-93c0c8b4a5a174645550d444bd5c3ff0cccf74cb.zip |
ieee802154: Fix oops during ieee802154_sock_ioctl
Trying to run izlisten (from lowpan-tools tests) on a device that does not
exists I got the oops below. The problem is that we are using get_dev_by_name
without checking if we really get a device back. We don't in this case and
writing to dev->type generates this oops.
[Oops code removed by Dmitry Eremin-Solenikov]
If possible this patch should be applied to the current -rc fixes branch.
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ieee802154')
-rw-r--r-- | net/ieee802154/af_ieee802154.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ieee802154/af_ieee802154.c b/net/ieee802154/af_ieee802154.c index c7da600750bb..93c91b633a56 100644 --- a/net/ieee802154/af_ieee802154.c +++ b/net/ieee802154/af_ieee802154.c @@ -151,6 +151,9 @@ static int ieee802154_dev_ioctl(struct sock *sk, struct ifreq __user *arg, dev_load(sock_net(sk), ifr.ifr_name); dev = dev_get_by_name(sock_net(sk), ifr.ifr_name); + if (!dev) + return -ENODEV; + if (dev->type == ARPHRD_IEEE802154 && dev->netdev_ops->ndo_do_ioctl) ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, cmd); |