pk_sign: fix overriding and ignoring return values

This commit is contained in:
AndrzejKurek 2018-04-03 19:38:45 +02:00
parent 225684015d
commit 0de430678e
2 changed files with 6 additions and 3 deletions

View File

@ -24,6 +24,8 @@ Bugfix
ECPrivateKey structure. Found by jethrogb, fixed in #1379. ECPrivateKey structure. Found by jethrogb, fixed in #1379.
* Return plaintext data sooner on unpadded CBC decryption, as stated in * Return plaintext data sooner on unpadded CBC decryption, as stated in
the mbedtls_cipher_update() documentation. Contributed by Andy Leiserson. the mbedtls_cipher_update() documentation. Contributed by Andy Leiserson.
* Fix overriding and ignoring return values when parsing and writing to
a file in pk_sign program. Found by kevlut in #1142.
Changes Changes
* Improve testing in configurations that omit certain hashes or * Improve testing in configurations that omit certain hashes or

View File

@ -29,6 +29,7 @@
#include "mbedtls/platform.h" #include "mbedtls/platform.h"
#else #else
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#define mbedtls_snprintf snprintf #define mbedtls_snprintf snprintf
#define mbedtls_printf printf #define mbedtls_printf printf
#endif #endif
@ -100,8 +101,7 @@ int main( int argc, char *argv[] )
if( ( ret = mbedtls_pk_parse_keyfile( &pk, argv[1], "" ) ) != 0 ) if( ( ret = mbedtls_pk_parse_keyfile( &pk, argv[1], "" ) ) != 0 )
{ {
ret = 1; mbedtls_printf( " failed\n ! Could not parse '%s'\n", argv[1] );
mbedtls_printf( " failed\n ! Could not open '%s'\n", argv[1] );
goto exit; goto exit;
} }
@ -141,6 +141,7 @@ int main( int argc, char *argv[] )
if( fwrite( buf, 1, olen, f ) != olen ) if( fwrite( buf, 1, olen, f ) != olen )
{ {
ret = 1;
mbedtls_printf( "failed\n ! fwrite failed\n\n" ); mbedtls_printf( "failed\n ! fwrite failed\n\n" );
goto exit; goto exit;
} }
@ -167,7 +168,7 @@ exit:
fflush( stdout ); getchar(); fflush( stdout ); getchar();
#endif #endif
return( ret ); return( ret ? EXIT_FAILURE : EXIT_SUCCESS );
} }
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_SHA256_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO && MBEDTLS_SHA256_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO &&