Check return values in more places

Selective replacement of
```
^\( *\)\(mbedtls_\(md\|cipher\)_[A-Z_a-z0-9]+\)\((.*)\);
```
by
```
\1if( \2\4 != 0 )
\1{
\1    mbedtls_fprintf( stderr, "\2() returned error\\n" );
\1    goto exit;
\1}
```

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine 2021-12-10 14:25:45 +01:00
parent 362d6efbde
commit 3d28378734

View File

@ -367,7 +367,11 @@ int main( int argc, char *argv[] )
goto exit; goto exit;
} }
mbedtls_md_hmac_starts( &md_ctx, digest, 32 ); if( mbedtls_md_hmac_starts( &md_ctx, digest, 32 ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_md_hmac_starts() returned error\n" );
goto exit;
}
/* /*
* Encrypt and write the ciphertext. * Encrypt and write the ciphertext.
@ -389,7 +393,11 @@ int main( int argc, char *argv[] )
goto exit; goto exit;
} }
mbedtls_md_hmac_update( &md_ctx, output, olen ); if( mbedtls_md_hmac_update( &md_ctx, output, olen ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_md_hmac_update() returned error\n" );
goto exit;
}
if( fwrite( output, 1, olen, fout ) != olen ) if( fwrite( output, 1, olen, fout ) != olen )
{ {
@ -403,7 +411,11 @@ int main( int argc, char *argv[] )
mbedtls_fprintf( stderr, "mbedtls_cipher_finish() returned error\n" ); mbedtls_fprintf( stderr, "mbedtls_cipher_finish() returned error\n" );
goto exit; goto exit;
} }
mbedtls_md_hmac_update( &md_ctx, output, olen ); if( mbedtls_md_hmac_update( &md_ctx, output, olen ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_md_hmac_update() returned error\n" );
goto exit;
}
if( fwrite( output, 1, olen, fout ) != olen ) if( fwrite( output, 1, olen, fout ) != olen )
{ {
@ -414,7 +426,11 @@ int main( int argc, char *argv[] )
/* /*
* Finally write the HMAC. * Finally write the HMAC.
*/ */
mbedtls_md_hmac_finish( &md_ctx, digest ); if( mbedtls_md_hmac_finish( &md_ctx, digest ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_md_hmac_finish() returned error\n" );
goto exit;
}
if( fwrite( digest, 1, mbedtls_md_get_size( md_info ), fout ) != mbedtls_md_get_size( md_info ) ) if( fwrite( digest, 1, mbedtls_md_get_size( md_info ), fout ) != mbedtls_md_get_size( md_info ) )
{ {
@ -483,10 +499,26 @@ int main( int argc, char *argv[] )
for( i = 0; i < 8192; i++ ) for( i = 0; i < 8192; i++ )
{ {
mbedtls_md_starts( &md_ctx ); if( mbedtls_md_starts( &md_ctx ) != 0 )
mbedtls_md_update( &md_ctx, digest, 32 ); {
mbedtls_md_update( &md_ctx, key, keylen ); mbedtls_fprintf( stderr, "mbedtls_md_starts() returned error\n" );
mbedtls_md_finish( &md_ctx, digest ); goto exit;
}
if( mbedtls_md_update( &md_ctx, digest, 32 ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_md_update() returned error\n" );
goto exit;
}
if( mbedtls_md_update( &md_ctx, key, keylen ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_md_update() returned error\n" );
goto exit;
}
if( mbedtls_md_finish( &md_ctx, digest ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_md_finish() returned error\n" );
goto exit;
}
} }
if( mbedtls_cipher_setkey( &cipher_ctx, digest, cipher_info->key_bitlen, if( mbedtls_cipher_setkey( &cipher_ctx, digest, cipher_info->key_bitlen,
@ -508,7 +540,11 @@ int main( int argc, char *argv[] )
goto exit; goto exit;
} }
mbedtls_md_hmac_starts( &md_ctx, digest, 32 ); if( mbedtls_md_hmac_starts( &md_ctx, digest, 32 ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_md_hmac_starts() returned error\n" );
goto exit;
}
/* /*
* Decrypt and write the plaintext. * Decrypt and write the plaintext.
@ -525,7 +561,11 @@ int main( int argc, char *argv[] )
goto exit; goto exit;
} }
mbedtls_md_hmac_update( &md_ctx, buffer, ilen ); if( mbedtls_md_hmac_update( &md_ctx, buffer, ilen ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_md_hmac_update() returned error\n" );
goto exit;
}
if( mbedtls_cipher_update( &cipher_ctx, buffer, ilen, output, if( mbedtls_cipher_update( &cipher_ctx, buffer, ilen, output,
&olen ) != 0 ) &olen ) != 0 )
{ {
@ -543,7 +583,11 @@ int main( int argc, char *argv[] )
/* /*
* Verify the message authentication code. * Verify the message authentication code.
*/ */
mbedtls_md_hmac_finish( &md_ctx, digest ); if( mbedtls_md_hmac_finish( &md_ctx, digest ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_md_hmac_finish() returned error\n" );
goto exit;
}
if( fread( buffer, 1, mbedtls_md_get_size( md_info ), fin ) != mbedtls_md_get_size( md_info ) ) if( fread( buffer, 1, mbedtls_md_get_size( md_info ), fin ) != mbedtls_md_get_size( md_info ) )
{ {
@ -566,7 +610,11 @@ int main( int argc, char *argv[] )
/* /*
* Write the final block of data * Write the final block of data
*/ */
mbedtls_cipher_finish( &cipher_ctx, output, &olen ); if( mbedtls_cipher_finish( &cipher_ctx, output, &olen ) != 0 )
{
mbedtls_fprintf( stderr, "mbedtls_cipher_finish() returned error\n" );
goto exit;
}
if( fwrite( output, 1, olen, fout ) != olen ) if( fwrite( output, 1, olen, fout ) != olen )
{ {