summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorPaul Yang <kaishen.yy@antfin.com>2019-09-30 14:05:31 +0800
committerPaul Yang <kaishen.yy@antfin.com>2019-09-30 17:18:17 +0800
commit7e3ae24832e0705583b1471febf3dc0eb1cc021f (patch)
treee67320014f3adacefb760d3fe801b9e0593d2698 /apps
parentdf0822688fc3432cf800cdc07c7f9016ea201170 (diff)
Fix a bundle of mischecks of return values
Several EVP_PKEY_xxxx functions return 0 and a negative value for indicating errors. Some places call these functions with a zero return value check only, which misses the check for the negative scenarios. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10055)
Diffstat (limited to 'apps')
-rw-r--r--apps/speed.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/apps/speed.c b/apps/speed.c
index 33f77d3b2c..47e7d1bbc5 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -3149,7 +3149,7 @@ int speed_main(int argc, char **argv)
pctx = NULL;
}
if (kctx == NULL || /* keygen ctx is not null */
- !EVP_PKEY_keygen_init(kctx) /* init keygen ctx */ ) {
+ EVP_PKEY_keygen_init(kctx) <= 0/* init keygen ctx */ ) {
ecdh_checks = 0;
BIO_printf(bio_err, "ECDH keygen failure.\n");
ERR_print_errors(bio_err);
@@ -3157,12 +3157,12 @@ int speed_main(int argc, char **argv)
break;
}
- if (!EVP_PKEY_keygen(kctx, &key_A) || /* generate secret key A */
- !EVP_PKEY_keygen(kctx, &key_B) || /* generate secret key B */
+ if (EVP_PKEY_keygen(kctx, &key_A) <= 0 || /* generate secret key A */
+ EVP_PKEY_keygen(kctx, &key_B) <= 0 || /* generate secret key B */
!(ctx = EVP_PKEY_CTX_new(key_A, NULL)) || /* derivation ctx from skeyA */
- !EVP_PKEY_derive_init(ctx) || /* init derivation ctx */
- !EVP_PKEY_derive_set_peer(ctx, key_B) || /* set peer pubkey in ctx */
- !EVP_PKEY_derive(ctx, NULL, &outlen) || /* determine max length */
+ EVP_PKEY_derive_init(ctx) <= 0 || /* init derivation ctx */
+ EVP_PKEY_derive_set_peer(ctx, key_B) <= 0 || /* set peer pubkey in ctx */
+ EVP_PKEY_derive(ctx, NULL, &outlen) <= 0 || /* determine max length */
outlen == 0 || /* ensure outlen is a valid size */
outlen > MAX_ECDH_SIZE /* avoid buffer overflow */ ) {
ecdh_checks = 0;