Merge of IOTSSL-476 - Random malloc in pem_read()
diff --git a/library/base64.c b/library/base64.c
index 16c254d..e468e2c 100644
--- a/library/base64.c
+++ b/library/base64.c
@@ -184,7 +184,10 @@
}
if( n == 0 )
+ {
+ *olen = 0;
return( 0 );
+ }
n = ( ( n * 6 ) + 7 ) >> 3;
n -= j;
diff --git a/library/pem.c b/library/pem.c
index 541e870..1ee3966 100644
--- a/library/pem.c
+++ b/library/pem.c
@@ -316,6 +316,9 @@
( MBEDTLS_AES_C || MBEDTLS_DES_C ) */
}
+ if( s1 == s2 )
+ return( MBEDTLS_ERR_PEM_INVALID_DATA );
+
ret = mbedtls_base64_decode( NULL, 0, &len, s1, s2 - s1 );
if( ret == MBEDTLS_ERR_BASE64_INVALID_CHARACTER )