wlan: Avoid invalid channel configuration for GO/SAP.

If supplicant sends invalid channel then return with
EINVALID error.

Change-Id: I57183a36966ad8bd5b9df6edb6796989b2823fde
CRs-fixed: 441604
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 1e37eb9..cfe9bed 100755
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -1426,9 +1426,18 @@
         ||   (pAdapter->device_mode == WLAN_HDD_P2P_GO)
             )
     {
-        (WLAN_HDD_GET_AP_CTX_PTR(pAdapter))->sapConfig.channel = channel;
-
-        if ( WLAN_HDD_SOFTAP == pAdapter->device_mode )
+        if (WLAN_HDD_P2P_GO == pAdapter->device_mode)
+        {
+            if(VOS_STATUS_SUCCESS !=
+                       wlan_hdd_validate_operation_channel(pAdapter,channel))
+            {
+               hddLog(VOS_TRACE_LEVEL_ERROR,
+                      "%s: Invalid Channel [%d] \n", __func__, channel);
+               return -EINVAL;
+            }
+            (WLAN_HDD_GET_AP_CTX_PTR(pAdapter))->sapConfig.channel = channel;
+        }
+        else if ( WLAN_HDD_SOFTAP == pAdapter->device_mode )
         {
             hdd_config_t *cfg_param = (WLAN_HDD_GET_CTX(pAdapter))->cfg_ini;
 
@@ -1437,12 +1446,23 @@
             */
             if ( cfg_param->apAutoChannelSelection )
             {
-                (WLAN_HDD_GET_AP_CTX_PTR(pAdapter))->sapConfig.channel = AUTO_CHANNEL_SELECT;
-
+                (WLAN_HDD_GET_AP_CTX_PTR(pAdapter))->sapConfig.channel =
+                                                          AUTO_CHANNEL_SELECT;
                 hddLog(VOS_TRACE_LEVEL_INFO_HIGH,
                        "%s: set channel to auto channel (0) for device mode =%d",
                        __func__, pAdapter->device_mode);
             }
+            else
+            {
+                if(VOS_STATUS_SUCCESS !=
+                         wlan_hdd_validate_operation_channel(pAdapter,channel))
+                {
+                   hddLog(VOS_TRACE_LEVEL_ERROR,
+                          "%s: Invalid Channel [%d] \n", __func__, channel);
+                   return -EINVAL;
+                }
+                (WLAN_HDD_GET_AP_CTX_PTR(pAdapter))->sapConfig.channel = channel;
+            }
         }
     }
     else