mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-26 03:25:46 +01:00
Resource leak fix on windows platform
Fix a resource leak on windows platform, in mbedtls_x509_crt_parse_path, in case a failure. when an error occurs, goto cleanup, and free the resource, instead of returning error code immediately.
This commit is contained in:
parent
8ab0595538
commit
3e19df5c95
@ -8,6 +8,9 @@ Bugfix
|
|||||||
* Replace preproccessor condition from #if defined(MBEDTLS_THREADING_PTHREAD)
|
* Replace preproccessor condition from #if defined(MBEDTLS_THREADING_PTHREAD)
|
||||||
to #if defined(MBEDTLS_THREADING_C) as the library cannot assume they will
|
to #if defined(MBEDTLS_THREADING_C) as the library cannot assume they will
|
||||||
always be implemented by pthread support. Fix for #696
|
always be implemented by pthread support. Fix for #696
|
||||||
|
* Fix resource leak on windows platform, in mbedtls_x509_crt_parse_path.
|
||||||
|
In case of failure, when an error occures, goto cleanup.
|
||||||
|
Found by redplait #590
|
||||||
|
|
||||||
Security
|
Security
|
||||||
* Fix authentication bypass in SSL/TLS: when auth_mode is set to optional,
|
* Fix authentication bypass in SSL/TLS: when auth_mode is set to optional,
|
||||||
|
@ -1146,7 +1146,10 @@ int mbedtls_x509_crt_parse_path( mbedtls_x509_crt *chain, const char *path )
|
|||||||
p, (int) len - 1,
|
p, (int) len - 1,
|
||||||
NULL, NULL );
|
NULL, NULL );
|
||||||
if( w_ret == 0 )
|
if( w_ret == 0 )
|
||||||
return( MBEDTLS_ERR_X509_FILE_IO_ERROR );
|
{
|
||||||
|
ret = MBEDTLS_ERR_X509_FILE_IO_ERROR;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
w_ret = mbedtls_x509_crt_parse_file( chain, filename );
|
w_ret = mbedtls_x509_crt_parse_file( chain, filename );
|
||||||
if( w_ret < 0 )
|
if( w_ret < 0 )
|
||||||
@ -1159,6 +1162,7 @@ int mbedtls_x509_crt_parse_path( mbedtls_x509_crt *chain, const char *path )
|
|||||||
if( GetLastError() != ERROR_NO_MORE_FILES )
|
if( GetLastError() != ERROR_NO_MORE_FILES )
|
||||||
ret = MBEDTLS_ERR_X509_FILE_IO_ERROR;
|
ret = MBEDTLS_ERR_X509_FILE_IO_ERROR;
|
||||||
|
|
||||||
|
cleanup:
|
||||||
FindClose( hFind );
|
FindClose( hFind );
|
||||||
#else /* _WIN32 */
|
#else /* _WIN32 */
|
||||||
int t_ret;
|
int t_ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user