Skip to content

Commit

Permalink
fix missing null check in kdf_test_ctrl
Browse files Browse the repository at this point in the history
Coverity issue 1453632 noted a missing null check in kdf_test_ctrl
recently.  If a malformed value is passed in from the test file that
does not contain a ':' character, the p variable will be NULL, leading
to a NULL derefence prepare_from_text

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
(Merged from #23398)

(cherry picked from commit 6ca1d3e)
  • Loading branch information
nhorman committed Jan 30, 2024
1 parent a1572c9 commit 4ee81ec
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions test/evp_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -2773,30 +2773,33 @@ static int kdf_test_ctrl(EVP_TEST *t, EVP_KDF_CTX *kctx,
if (!TEST_ptr(name = OPENSSL_strdup(value)))
return 0;
p = strchr(name, ':');
if (p != NULL)
if (p == NULL)
p = "";
else
*p++ = '\0';

rv = OSSL_PARAM_allocate_from_text(kdata->p, defs, name, p,
p != NULL ? strlen(p) : 0, NULL);
strlen(p), NULL);
*++kdata->p = OSSL_PARAM_construct_end();
if (!rv) {
t->err = "KDF_PARAM_ERROR";
OPENSSL_free(name);
return 0;
}
if (p != NULL && strcmp(name, "digest") == 0) {
if (strcmp(name, "digest") == 0) {
if (is_digest_disabled(p)) {
TEST_info("skipping, '%s' is disabled", p);
t->skip = 1;
}
}
if (p != NULL
&& (strcmp(name, "cipher") == 0
|| strcmp(name, "cekalg") == 0)

if ((strcmp(name, "cipher") == 0
|| strcmp(name, "cekalg") == 0)
&& is_cipher_disabled(p)) {
TEST_info("skipping, '%s' is disabled", p);
t->skip = 1;
}

OPENSSL_free(name);
return 1;
}
Expand Down

0 comments on commit 4ee81ec

Please sign in to comment.