diff options
author | Johannes Berg <johannes.berg@intel.com> | 2023-08-15 19:32:03 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-09-23 12:14:22 +0300 |
commit | 94332210902967b7d63294b43428c8ed075b20e6 (patch) | |
tree | 03ea19175c9c63f30877d201d0ccf69e037ede7c /net | |
parent | 07added2c6cd63de047bc786b39436322abb67c0 (diff) | |
download | linux-94332210902967b7d63294b43428c8ed075b20e6.tar.xz |
wifi: cfg80211: ocb: don't leave if not joined
[ Upstream commit abc76cf552e13cfa88a204b362a86b0e08e95228 ]
If there's no OCB state, don't ask the driver/mac80211 to
leave, since that's just confusing. Since set/clear the
chandef state, that's a simple check.
Reported-by: syzbot+09d1cd2f71e6dd3bfd2c@syzkaller.appspotmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/wireless/ocb.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/wireless/ocb.c b/net/wireless/ocb.c index 27a1732264f9..29afaf3da54f 100644 --- a/net/wireless/ocb.c +++ b/net/wireless/ocb.c @@ -68,6 +68,9 @@ int __cfg80211_leave_ocb(struct cfg80211_registered_device *rdev, if (!rdev->ops->leave_ocb) return -EOPNOTSUPP; + if (!wdev->u.ocb.chandef.chan) + return -ENOTCONN; + err = rdev_leave_ocb(rdev, dev); if (!err) memset(&wdev->u.ocb.chandef, 0, sizeof(wdev->u.ocb.chandef)); |