Make sure nobody passes in bogus values, and translate the values
(although it isn't necessary).
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
                        break;
                }
                if (sdata->vif.type == NL80211_IFTYPE_STATION ||
-                   sdata->vif.type == NL80211_IFTYPE_ADHOC)
-                       sdata->u.sta.mfp = data->value;
-               else
+                   sdata->vif.type == NL80211_IFTYPE_ADHOC) {
+                       switch (data->value) {
+                       case IW_AUTH_MFP_DISABLED:
+                               sdata->u.sta.mfp = IEEE80211_MFP_DISABLED;
+                               break;
+                       case IW_AUTH_MFP_OPTIONAL:
+                               sdata->u.sta.mfp = IEEE80211_MFP_OPTIONAL;
+                               break;
+                       case IW_AUTH_MFP_REQUIRED:
+                               sdata->u.sta.mfp = IEEE80211_MFP_REQUIRED;
+                               break;
+                       default:
+                               ret = -EINVAL;
+                       }
+               } else
                        ret = -EOPNOTSUPP;
                break;
        default: