diff mbox series

wifi: cfg80211: ocb: don't leave if not joined

Message ID 20230815183202.f5edf5ebc737.I3cbb49aa52aed2bace903a019f7300c66c61ea83@changeid (mailing list archive)
State Accepted
Delegated to: Johannes Berg
Headers show
Series wifi: cfg80211: ocb: don't leave if not joined | expand

Commit Message

Johannes Berg Aug. 15, 2023, 4:32 p.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

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>
---
 net/wireless/ocb.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Johannes Berg Aug. 15, 2023, 4:36 p.m. UTC | #1
On Tue, 2023-08-15 at 18:32 +0200, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
> 
> 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
> 

Note there are at least three different signatures in this syzbot
report, similar warning but different things that happen ...

johannes
diff mbox series

Patch

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));