Fix unchecked error code on Windows
diff --git a/ChangeLog b/ChangeLog
index 582a9df..0d40eb8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -47,6 +47,8 @@
* Fix potential undefined behaviour in Camellia.
* Fix potential failure in ECDSA signatures when POLARSSL_ECP_MAX_BITS is a
multiple of 8 (found by Gergely Budai).
+ * Fix unchecked return code in x509_crt_parse_path() on Windows (found by
+ Peter Vaskovic).
Changes
* Use deterministic nonces for AEAD ciphers in TLS by default (possible to
diff --git a/library/x509_crt.c b/library/x509_crt.c
index 84d5297..31e3bc4 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -990,6 +990,8 @@
w_ret = MultiByteToWideChar( CP_ACP, 0, filename, len, szDir,
MAX_PATH - 3 );
+ if( w_ret == 0 )
+ return( POLARSSL_ERR_X509_BAD_INPUT_DATA );
hFind = FindFirstFileW( szDir, &file_data );
if( hFind == INVALID_HANDLE_VALUE )
@@ -1007,6 +1009,8 @@
lstrlenW( file_data.cFileName ),
p, len - 1,
NULL, NULL );
+ if( w_ret == 0 )
+ return( POLARSSL_ERR_X509_FILE_IO_ERROR );
w_ret = x509_crt_parse_file( chain, filename );
if( w_ret < 0 )