]> git.baikalelectronics.ru Git - kernel.git/commitdiff
wifi: cfg80211: ocb: don't leave if not joined
authorJohannes Berg <johannes.berg@intel.com>
Tue, 15 Aug 2023 16:32:03 +0000 (18:32 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Sep 2023 09:11:03 +0000 (11:11 +0200)
[ 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>
net/wireless/ocb.c

index 27a1732264f95f1bb632d87fb870c0c895fc4e38..29afaf3da54f36a3ae7475be6fe6dc699adb0bb4 100644 (file)
@@ -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));