From: Andy Polyakov Date: Sat, 30 Jun 2018 10:52:10 +0000 (+0200) Subject: test/evp_test.c: address sanitizer errors in pderive_test_run. X-Git-Tag: OpenSSL_1_1_0i~62 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e35e5941e0b2f7af1cd56f07ee8d4eaf2b445132;p=oweals%2Fopenssl.git test/evp_test.c: address sanitizer errors in pderive_test_run. Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/6614) --- diff --git a/test/evp_test.c b/test/evp_test.c index fb2ca279bf..c2434db170 100644 --- a/test/evp_test.c +++ b/test/evp_test.c @@ -1592,19 +1592,19 @@ static int pderive_test_run(struct evp_test *t) struct pkey_data *kdata = t->data; unsigned char *out = NULL; size_t out_len; - const char *err = "INTERNAL_ERROR"; + const char *err = "DERIVE_ERROR"; - out_len = kdata->output_len; + if (EVP_PKEY_derive(kdata->ctx, NULL, &out_len) <= 0) + goto err; out = OPENSSL_malloc(out_len); if (!out) { fprintf(stderr, "Error allocating output buffer!\n"); exit(1); } - err = "DERIVE_ERROR"; if (EVP_PKEY_derive(kdata->ctx, out, &out_len) <= 0) goto err; err = "SHARED_SECRET_LENGTH_MISMATCH"; - if (out_len != kdata->output_len) + if (kdata->output == NULL || out_len != kdata->output_len) goto err; err = "SHARED_SECRET_MISMATCH"; if (check_output(t, kdata->output, out, out_len))