فهرست منبع

qcacld-3.0: Update wep_key length in mlme_get_wep_key

In mlme_get_wep_key, the key_length is got from the caller is
hardcoded to value 13. This should be updated based on the
length of the key and passed to the caller. But it is not
updated and value 13 is used to copy the key, resulting in
decrypt failure.
Also add debug logs to print wep key id and length.

Pass the key length by call by reference to update the key
length

Change-Id: Ie1e56a80db27894bf9f0426728f9fb74a014679e
CRs-Fixed: 2351182
Pragaspathi Thilagaraj 6 سال پیش
والد
کامیت
20898a3e0d
2فایلهای تغییر یافته به همراه8 افزوده شده و 7 حذف شده
  1. 1 1
      mlme/dispatcher/inc/wlan_mlme_api.h
  2. 7 6
      mlme/dispatcher/src/wlan_mlme_api.c

+ 1 - 1
mlme/dispatcher/inc/wlan_mlme_api.h

@@ -73,7 +73,7 @@ QDF_STATUS wlan_mlme_get_edca_params(struct wlan_mlme_edca_params *edca_params,
  */
 QDF_STATUS mlme_get_wep_key(struct wlan_mlme_wep_cfg *wep_params,
 			    enum wep_key_id wep_keyid, uint8_t *default_key,
-			    qdf_size_t key_len);
+			    qdf_size_t *key_len);
 
 /**
  * mlme_set_wep_key() - set the wep keys during auth

+ 7 - 6
mlme/dispatcher/src/wlan_mlme_api.c

@@ -2099,37 +2099,38 @@ QDF_STATUS wlan_mlme_get_edca_params(struct wlan_mlme_edca_params *edca_params,
 
 QDF_STATUS mlme_get_wep_key(struct wlan_mlme_wep_cfg *wep_params,
 			    enum wep_key_id wep_keyid, uint8_t *default_key,
-			    qdf_size_t key_len)
+			    qdf_size_t *key_len)
 {
 	switch (wep_keyid) {
 	case MLME_WEP_DEFAULT_KEY_1:
 		wlan_mlme_get_cfg_str(default_key,
 				      &wep_params->wep_default_key_1,
-				      &key_len);
+				      key_len);
 		break;
 
 	case MLME_WEP_DEFAULT_KEY_2:
 		wlan_mlme_get_cfg_str(default_key,
 				      &wep_params->wep_default_key_2,
-				      &key_len);
+				      key_len);
 		break;
 
 	case MLME_WEP_DEFAULT_KEY_3:
 		wlan_mlme_get_cfg_str(default_key,
 				      &wep_params->wep_default_key_3,
-				      &key_len);
+				      key_len);
 		break;
 
 	case MLME_WEP_DEFAULT_KEY_4:
 		wlan_mlme_get_cfg_str(default_key,
 				      &wep_params->wep_default_key_4,
-				      &key_len);
+				      key_len);
 		break;
 
 	default:
 		mlme_err("Invalid key id:%d", wep_keyid);
 		return QDF_STATUS_E_INVAL;
 	}
+	mlme_debug("key_id:%d key_len:%zd", wep_keyid, *key_len);
 	return QDF_STATUS_SUCCESS;
 }
 
@@ -2138,10 +2139,10 @@ QDF_STATUS mlme_set_wep_key(struct wlan_mlme_wep_cfg *wep_params,
 			    qdf_size_t len)
 {
 	if (len == 0) {
-		mlme_debug("WEP set key length is zero");
 		return QDF_STATUS_E_FAILURE;
 	}
 
+	mlme_debug("WEP set key for key_id:%d key_len:%zd", wep_keyid, len);
 	switch (wep_keyid) {
 	case MLME_WEP_DEFAULT_KEY_1:
 		wlan_mlme_set_cfg_str(key_to_set,