diff options
author | Julia Lawall <julia@diku.dk> | 2011-05-16 11:20:29 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-05-17 13:31:31 -0700 |
commit | d93089df1b752e4da048cd7f4749d29120b65e55 (patch) | |
tree | cd9f5f0985a838fc61fb9192d5b5d6b632b7a0cd /drivers/staging/ath6kl | |
parent | aacd531df9b88f7419e22708f72a476030863efe (diff) | |
download | kernel_samsung_smdk4412-d93089df1b752e4da048cd7f4749d29120b65e55.zip kernel_samsung_smdk4412-d93089df1b752e4da048cd7f4749d29120b65e55.tar.gz kernel_samsung_smdk4412-d93089df1b752e4da048cd7f4749d29120b65e55.tar.bz2 |
drivers/staging/ath6kl/os/linux/cfg80211.c: Add missing call to cfg80211_put_bss
A call to cfg80211_get_bss hould be accompanied by a call to
cfg80211_put_bss in error-handling code.
A simplified version of the semantic match that finds this problem is:
(http://coccinelle.lip6.fr/)
// <smpl>
@r exists@
local idexpression struct cfg80211_bss * x;
expression ra,rr;
position p1,p2;
@@
x = cfg80211_get_bss@p1(...)
... when != x = rr
when != cfg80211_put_bss(x,...)
when != if (...) { ... cfg80211_put_bss(x,...) ...}
if(...) { ... when != x = ra
when forall
when != cfg80211_put_bss(x,...)
\(return <+...x...+>; \| return@p2...; \) }
@script:python@
p1 << r.p1;
p2 << r.p2;
@@
cocci.print_main("cfg80211_get_bss",p1)
cocci.print_secs("return",p2)
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/ath6kl')
-rw-r--r-- | drivers/staging/ath6kl/os/linux/cfg80211.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/staging/ath6kl/os/linux/cfg80211.c b/drivers/staging/ath6kl/os/linux/cfg80211.c index efd4ae5..1e6a343 100644 --- a/drivers/staging/ath6kl/os/linux/cfg80211.c +++ b/drivers/staging/ath6kl/os/linux/cfg80211.c @@ -545,6 +545,7 @@ ar6k_cfg80211_connect_event(struct ar6_softc *ar, u16 channel, if(!ieeemgmtbuf) { AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("%s: ieeeMgmtbuf alloc error\n", __func__)); + cfg80211_put_bss(bss); return; } |