wifi: nl80211: return error message for malformed chandef
authorJaewan Kim <jaewan@google.com>
Mon, 30 Jan 2023 07:45:14 +0000 (07:45 +0000)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 14 Feb 2023 11:09:18 +0000 (12:09 +0100)
Add an error message to the missing frequency case to have all
-EINVAL in nl80211_parse_chandef() return a better error.

Signed-off-by: Jaewan Kim <jaewan@google.com>
Link: https://lore.kernel.org/r/20230130074514.1560021-1-jaewan@google.com
[rewrite commit message]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/nl80211.c

index 50515a5..c82c66c 100644 (file)
@@ -3181,8 +3181,11 @@ int nl80211_parse_chandef(struct cfg80211_registered_device *rdev,
        struct nlattr **attrs = info->attrs;
        u32 control_freq;
 
-       if (!attrs[NL80211_ATTR_WIPHY_FREQ])
+       if (!attrs[NL80211_ATTR_WIPHY_FREQ]) {
+               NL_SET_ERR_MSG_ATTR(extack, attrs[NL80211_ATTR_WIPHY_FREQ],
+                                   "Frequency is missing");
                return -EINVAL;
+       }
 
        control_freq = MHZ_TO_KHZ(
                        nla_get_u32(info->attrs[NL80211_ATTR_WIPHY_FREQ]));