From: Shane Lontis Date: Fri, 25 Sep 2020 03:50:25 +0000 (+1000) Subject: Fix bug in EDDSA speed test X-Git-Tag: openssl-3.0.0-alpha7~108 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4f5b222b84432a11c44d8c9a11c7fa98351db79b;p=thirdparty%2Fopenssl.git Fix bug in EDDSA speed test The pkey created in one loop was being fed into the keygen of the next loop - since it was not set to NULL after the free. This meant that the 2 EVP_MD_CTX objects that still had ref counts to this key were getting confused. All other tests clear the key after freeing the key if they loop (some do this by declaring/initing the pkey inside the loop). The offending code is a recent addition to the speed app. This was found using the -async_jobs option. Similar code was tried for an RSA key using 111 which resulted in the same issue. Found while trying to test issue #128867 (It is not known if this will fix that issue yet). Reviewed-by: Tomas Mraz Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/12975) --- diff --git a/apps/speed.c b/apps/speed.c index 017c5a280ab..46187010d59 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -3426,6 +3426,7 @@ int speed_main(int argc, char **argv) } EVP_PKEY_free(ed_pkey); + ed_pkey = NULL; } if (st == 0) { BIO_printf(bio_err, "EdDSA failure.\n");