From e8b23a5c34eb9cfb974d0436edb9df8c363fd4e1 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Mon, 28 Jul 2025 10:59:54 -0400 Subject: [PATCH] Test OSSL_PARAM_clear_free() Signed-off-by: Simo Sorce Reviewed-by: Tomas Mraz Reviewed-by: Dmitry Belyavskiy (Merged from https://github.com/openssl/openssl/pull/28108) --- test/params_api_test.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/test/params_api_test.c b/test/params_api_test.c index 9a47fc95e5c..74aa315393e 100644 --- a/test/params_api_test.c +++ b/test/params_api_test.c @@ -883,6 +883,36 @@ static int test_param_merge(void) OSSL_PARAM_free(p); return ret; } +static int test_param_clear_free(void) +{ + int values[] = {1, 2}; + OSSL_PARAM *dup, *manual; + OSSL_PARAM base[3]; + int ret = 0; + + base[0] = OSSL_PARAM_construct_int("int", &values[0]); + base[1] = OSSL_PARAM_construct_int("int", &values[1]); + base[2] = OSSL_PARAM_construct_end(); + + if (!TEST_ptr(dup = OSSL_PARAM_dup(base))) + goto err; + + OSSL_PARAM_clear_free(dup); + + if (!TEST_ptr(manual = OPENSSL_zalloc(sizeof(OSSL_PARAM) * 3))) + goto err; + + manual[0] = OSSL_PARAM_construct_int("int", &values[0]); + manual[1] = OSSL_PARAM_construct_int("int", &values[1]); + manual[2] = OSSL_PARAM_construct_end(); + + OSSL_PARAM_clear_free(manual); + + ret = 1; + +err: + return ret; +} int setup_tests(void) { @@ -903,5 +933,6 @@ int setup_tests(void) ADD_TEST(test_param_modified); ADD_TEST(test_param_copy_null); ADD_TEST(test_param_merge); + ADD_TEST(test_param_clear_free); return 1; } -- 2.47.3