diff options
author | Stefan Schmidt <stefan@datenfreihafen.org> | 2010-04-26 14:20:32 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-12 18:02:56 -0400 |
commit | 3aae65db0819a8f6bb440e12868986fc3891e96e (patch) | |
tree | d2734439cf39953eb3d15c2b873acdbf873ec150 | |
parent | 5b0dede91684c855ab8e6abe7fa3513282f60fb6 (diff) |
ieee802154: Fix oops during ieee802154_sock_ioctl
[ Upstream commit 93c0c8b4a5a174645550d444bd5c3ff0cccf74cb ]
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-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 bad1c49fd960..72340ddb6afc 100644 --- a/net/ieee802154/af_ieee802154.c +++ b/net/ieee802154/af_ieee802154.c | |||
@@ -147,6 +147,9 @@ static int ieee802154_dev_ioctl(struct sock *sk, struct ifreq __user *arg, | |||
147 | dev_load(sock_net(sk), ifr.ifr_name); | 147 | dev_load(sock_net(sk), ifr.ifr_name); |
148 | dev = dev_get_by_name(sock_net(sk), ifr.ifr_name); | 148 | dev = dev_get_by_name(sock_net(sk), ifr.ifr_name); |
149 | 149 | ||
150 | if (!dev) | ||
151 | return -ENODEV; | ||
152 | |||
150 | if (dev->type == ARPHRD_IEEE802154 && dev->netdev_ops->ndo_do_ioctl) | 153 | if (dev->type == ARPHRD_IEEE802154 && dev->netdev_ops->ndo_do_ioctl) |
151 | ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, cmd); | 154 | ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, cmd); |
152 | 155 | ||