From 9a1b59247c09beab8abd4246647f73e54dfd19df Mon Sep 17 00:00:00 2001 From: Pooventhiran G Date: Sat, 16 Nov 2019 18:59:43 +0530 Subject: [PATCH] qcacmn: Reset keys to zero after use In functions that use key values, reset the local variables (key) to zero after use to avoid security vulnerability. Change-Id: I105b1abf7c707102ef99bbe4fa213708039d933e CRs-fixed: 2581402 --- target_if/crypto/src/target_if_crypto.c | 2 ++ umac/cmn_services/crypto/src/wlan_crypto_global_api.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/target_if/crypto/src/target_if_crypto.c b/target_if/crypto/src/target_if_crypto.c index e5a876c0275e..a3452d8ce3cc 100644 --- a/target_if/crypto/src/target_if_crypto.c +++ b/target_if/crypto/src/target_if_crypto.c @@ -220,6 +220,8 @@ QDF_STATUS target_if_crypto_set_key(struct wlan_objmgr_vdev *vdev, ¶ms.key_rsc_ctr, sizeof(uint64_t)); status = wmi_unified_setup_install_key_cmd(pdev_wmi_handle, ¶ms); + /* Zero-out local key variables */ + qdf_mem_zero(¶ms, sizeof(struct set_key_params)); return status; } diff --git a/umac/cmn_services/crypto/src/wlan_crypto_global_api.c b/umac/cmn_services/crypto/src/wlan_crypto_global_api.c index fe4c1428c7d8..4087c4cfd2ef 100644 --- a/umac/cmn_services/crypto/src/wlan_crypto_global_api.c +++ b/umac/cmn_services/crypto/src/wlan_crypto_global_api.c @@ -1104,6 +1104,9 @@ QDF_STATUS wlan_crypto_delkey(struct wlan_objmgr_vdev *vdev, qdf_mem_free(key->private); } } + + /* Zero-out local key variables */ + qdf_mem_zero(key, sizeof(struct wlan_crypto_key)); qdf_mem_free(key); return QDF_STATUS_SUCCESS;