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 92c1660e340c..03d7ed98f842 100644 --- a/umac/cmn_services/crypto/src/wlan_crypto_global_api.c +++ b/umac/cmn_services/crypto/src/wlan_crypto_global_api.c @@ -1095,9 +1095,13 @@ QDF_STATUS wlan_crypto_delkey(struct wlan_objmgr_vdev *vdev, cipher_table = (struct wlan_crypto_cipher *)key->cipher_table; qdf_mem_zero(key->keyval, sizeof(key->keyval)); - if (WLAN_CRYPTO_TX_OPS_DELKEY(psoc)) { + if (!IS_FILS_CIPHER(cipher_table->cipher) && + WLAN_CRYPTO_TX_OPS_DELKEY(psoc)) { WLAN_CRYPTO_TX_OPS_DELKEY(psoc)(vdev, key, macaddr, cipher_table->cipher); + } else if (IS_FILS_CIPHER(cipher_table->cipher)) { + if (key->private) + qdf_mem_free(key->private); } } qdf_mem_free(key);