mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-01-07 10:25:34 +00:00
Backport 2.1:Fix crash when calling mbedtls_ssl_cache_free
twice
Set `cache` to zero at the end of `mbedtls_ssl_cache_free` #1104
This commit is contained in:
parent
fe7fd6e8dc
commit
5bd272627b
|
@ -12,6 +12,8 @@ Bugfix
|
|||
* Fix leap year calculation in x509_date_is_valid() to ensure that invalid
|
||||
dates on leap years with 100 and 400 intervals are handled correctly. Found
|
||||
by Nicholas Wilson. #694
|
||||
* Fix crash when calling mbedtls_ssl_cache_free() twice. Found by
|
||||
MilenkoMitrovic, #1104
|
||||
|
||||
= mbed TLS 2.1.9 branch released 2017-08-10
|
||||
|
||||
|
|
|
@ -43,6 +43,15 @@
|
|||
#define mbedtls_free free
|
||||
#endif
|
||||
|
||||
#include "mbedtls/ssl_cache.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
/* Implementation that should never be optimized out by the compiler */
|
||||
static void mbedtls_zeroize( void *v, size_t n ) {
|
||||
volatile unsigned char *p = v; while( n-- ) *p++ = 0;
|
||||
}
|
||||
|
||||
void mbedtls_ssl_cache_init( mbedtls_ssl_cache_context *cache )
|
||||
{
|
||||
memset( cache, 0, sizeof( mbedtls_ssl_cache_context ) );
|
||||
|
@ -321,6 +330,8 @@ void mbedtls_ssl_cache_free( mbedtls_ssl_cache_context *cache )
|
|||
#if defined(MBEDTLS_THREADING_C)
|
||||
mbedtls_mutex_free( &cache->mutex );
|
||||
#endif
|
||||
|
||||
mbedtls_zeroize( cache, sizeof(mbedtls_ssl_cache_context) );
|
||||
}
|
||||
|
||||
#endif /* MBEDTLS_SSL_CACHE_C */
|
||||
|
|
Loading…
Reference in a new issue