summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2018-06-30 12:52:10 +0200
committerAndy Polyakov <appro@openssl.org>2018-07-02 10:48:35 +0200
commite35e5941e0b2f7af1cd56f07ee8d4eaf2b445132 (patch)
treecd139f36bd1e18cd4591088f996e235d7df87cb0
parenta80f76aff4e0be3f5738cf9b292f940dc06a0e2a (diff)
test/evp_test.c: address sanitizer errors in pderive_test_run.
Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6614)
-rw-r--r--test/evp_test.c8
1 files changed, 4 insertions, 4 deletions
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))