aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorRui Paulo <rpaulo@FreeBSD.org>2010-06-10 20:20:46 +0000
committerRui Paulo <rpaulo@FreeBSD.org>2010-06-10 20:20:46 +0000
commit58fba57eade4e19bfd15c9b773bc5df9d9857942 (patch)
tree8be975bda413ede4ed29787be5e15d1749de1193 /sys
parent8301c66f4d468a23a994d1f0d821ad7efd5242b3 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/net80211/ieee80211_ioctl.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c
index 237e556f30c5..d3e6e4e668d2 100644
--- a/sys/net80211/ieee80211_ioctl.c
+++ b/sys/net80211/ieee80211_ioctl.c
@@ -1590,8 +1590,10 @@ ieee80211_ioctl_setchanlist(struct ieee80211vap *vap, struct ieee80211req *ireq)
if (list == NULL)
return ENOMEM;
error = copyin(ireq->i_data, list, ireq->i_len);
- if (error)
+ if (error) {
+ free(list, M_TEMP);
return error;
+ }
nchan = 0;
chanlist = list + ireq->i_len; /* NB: zero'd already */
maxchan = ireq->i_len * NBBY;
@@ -1607,8 +1609,10 @@ ieee80211_ioctl_setchanlist(struct ieee80211vap *vap, struct ieee80211req *ireq)
nchan++;
}
}
- if (nchan == 0)
+ if (nchan == 0) {
+ free(list, M_TEMP);
return EINVAL;
+ }
if (ic->ic_bsschan != IEEE80211_CHAN_ANYC && /* XXX */
isclr(chanlist, ic->ic_bsschan->ic_ieee))
ic->ic_bsschan = IEEE80211_CHAN_ANYC;