diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2009-11-06 09:50:39 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-11-06 09:50:39 +0100 |
commit | 887e671f324d9898aaedb29a6ece6c853c394067 (patch) | |
tree | ff6e580e0342453b3e7251681ad6bc67ad7958a7 /net | |
parent | netfilter: nf_nat: fix NAT issue in 2.6.30.4+ (diff) | |
download | linux-887e671f324d9898aaedb29a6ece6c853c394067.tar.xz linux-887e671f324d9898aaedb29a6ece6c853c394067.zip |
decnet: netdevice refcount leak
While working on device refcount stuff, I found a device refcount leak
through DECNET.
This nasty bug can be used to hold refcounts on any !DECNET netdevice.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/decnet/sysctl_net_decnet.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/decnet/sysctl_net_decnet.c b/net/decnet/sysctl_net_decnet.c index 26b0ab1e9f56..2036568beea9 100644 --- a/net/decnet/sysctl_net_decnet.c +++ b/net/decnet/sysctl_net_decnet.c @@ -263,11 +263,10 @@ static int dn_def_dev_strategy(ctl_table *table, return -ENODEV; rv = -ENODEV; - if (dev->dn_ptr != NULL) { + if (dev->dn_ptr != NULL) rv = dn_dev_set_default(dev, 1); - if (rv) - dev_put(dev); - } + if (rv) + dev_put(dev); } return rv; |