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