Fixed potential file descriptor leaks
diff --git a/library/ctr_drbg.c b/library/ctr_drbg.c
index 8cf0371..2ff0b33 100644
--- a/library/ctr_drbg.c
+++ b/library/ctr_drbg.c
@@ -356,7 +356,10 @@
return( POLARSSL_ERR_CTR_DRBG_FILE_IO_ERROR );
if( ( ret = ctr_drbg_random( ctx, buf, CTR_DRBG_MAX_INPUT ) ) != 0 )
+ {
+ fclose( f );
return( ret );
+ }
if( fwrite( buf, 1, CTR_DRBG_MAX_INPUT, f ) != CTR_DRBG_MAX_INPUT )
{
@@ -382,7 +385,10 @@
fseek( f, 0, SEEK_SET );
if( n > CTR_DRBG_MAX_INPUT )
+ {
+ fclose( f );
return( POLARSSL_ERR_CTR_DRBG_INPUT_TOO_BIG );
+ }
if( fread( buf, 1, n, f ) != n )
{