diff options
author | Alexander Aring <aar@pengutronix.de> | 2016-06-21 04:27:18 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2016-07-08 06:20:57 -0400 |
commit | 929946a471c1d5c6c595b4094f4c56bdfceee9c7 (patch) | |
tree | 3b9f6cd3706591504034b13f537096cbcbee199b | |
parent | a4770e1117f193c3e27f5f046cd4f8e2470f3b70 (diff) |
6lowpan: ndisc: fix double read unlock
This patch removes a double unlock case to accessing neighbour private
data.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Alexander Aring <aar@pengutronix.de>
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r-- | net/6lowpan/ndisc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/6lowpan/ndisc.c b/net/6lowpan/ndisc.c index ae1d4199aa4c..030504e031b6 100644 --- a/net/6lowpan/ndisc.c +++ b/net/6lowpan/ndisc.c | |||
@@ -135,8 +135,9 @@ static int lowpan_ndisc_opt_addr_space(const struct net_device *dev, | |||
135 | read_unlock_bh(&neigh->lock); | 135 | read_unlock_bh(&neigh->lock); |
136 | addr_space += __ndisc_opt_addr_space(IEEE802154_SHORT_ADDR_LEN, 0); | 136 | addr_space += __ndisc_opt_addr_space(IEEE802154_SHORT_ADDR_LEN, 0); |
137 | *ha = ha_buf; | 137 | *ha = ha_buf; |
138 | } else { | ||
139 | read_unlock_bh(&neigh->lock); | ||
138 | } | 140 | } |
139 | read_unlock_bh(&neigh->lock); | ||
140 | break; | 141 | break; |
141 | case NDISC_NEIGHBOUR_ADVERTISEMENT: | 142 | case NDISC_NEIGHBOUR_ADVERTISEMENT: |
142 | case NDISC_NEIGHBOUR_SOLICITATION: | 143 | case NDISC_NEIGHBOUR_SOLICITATION: |