Просмотр исходного кода

Merge branch 'bugfix/eap_client_crash' into 'master'

wpa_supplicant: Fix null pointer deference and memleak

Closes IDFGH-3699

See merge request espressif/esp-idf!9690
Jiang Jiang Jian 5 лет назад
Родитель
Сommit
803cf064d2
1 измененных файлов с 2 добавлено и 1 удалено
  1. 2 1
      components/wpa_supplicant/src/crypto/tls_mbedtls.c

+ 2 - 1
components/wpa_supplicant/src/crypto/tls_mbedtls.c

@@ -384,7 +384,7 @@ static void tls_set_ciphersuite(tls_context_t *tls)
 	if (tls->ciphersuite[0]) {
 		mbedtls_ssl_conf_ciphersuites(&tls->conf, tls->ciphersuite);
 	} else if (mbedtls_pk_get_bitlen(&tls->clientkey) > 2048 ||
-		 mbedtls_pk_get_bitlen(&tls->cacert_ptr->pk) > 2048) {
+		(tls->cacert_ptr && mbedtls_pk_get_bitlen(&tls->cacert_ptr->pk) > 2048)) {
 		mbedtls_ssl_conf_ciphersuites(&tls->conf, eap_ciphersuite_preference);
 	}
 }
@@ -504,6 +504,7 @@ void tls_connection_deinit(void *tls_ctx, struct tls_connection *conn)
 {
 	/* Free ssl ctx and data */
 	tls_mbedtls_conn_delete((tls_context_t *) conn->tls);
+	os_free(conn->tls);
 	conn->tls = NULL;
 	/* Data in in ssl ctx, free connection */
 	os_free(conn);