summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPauli <paul.dale@oracle.com>2019-03-17 19:58:24 +1000
committerPauli <paul.dale@oracle.com>2019-03-19 17:42:05 +1000
commit5d677186e9e50ac9ed1e48d535044d4927775c28 (patch)
treee43b5c6475f9e2898ee74fc2d9722b331f6a3a93
parent1b9c5f2e2f283a3b12d02a89c11b8e8d97bc6312 (diff)
downloadopenssl-new-5d677186e9e50ac9ed1e48d535044d4927775c28.tar.gz
Fix resource leak coverity 1443711.
Free the allocated pointer on error. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8503)
-rw-r--r--test/params_api_test.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/test/params_api_test.c b/test/params_api_test.c
index 97c8a9dce5..e59266152b 100644
--- a/test/params_api_test.c
+++ b/test/params_api_test.c
@@ -465,7 +465,7 @@ static int test_param_construct(void)
OSSL_PARAM params[20];
char buf[100], buf2[100], *bufp, *bufp2;
unsigned char ubuf[100];
- void *vp, *vp2;
+ void *vp, *vpn = NULL, *vp2;
OSSL_PARAM *p;
const OSSL_PARAM *cp;
static const OSSL_PARAM pend = OSSL_PARAM_END;
@@ -557,7 +557,6 @@ static int test_param_construct(void)
|| !TEST_ptr_eq(bufp2, bufp))
goto err;
/* OCTET string */
- vp = NULL;
if (!TEST_ptr(p = locate(params, "octstr"))
|| !TEST_true(OSSL_PARAM_set_octet_string(p, "abcdefghi",
sizeof("abcdefghi")))
@@ -565,12 +564,11 @@ static int test_param_construct(void)
goto err;
/* Match the return size to avoid trailing garbage bytes */
p->data_size = *p->return_size;
- if (!TEST_true(OSSL_PARAM_get_octet_string(p, &vp, 0, &s))
+ if (!TEST_true(OSSL_PARAM_get_octet_string(p, &vpn, 0, &s))
|| !TEST_size_t_eq(s, sizeof("abcdefghi"))
- || !TEST_mem_eq(vp, sizeof("abcdefghi"),
+ || !TEST_mem_eq(vpn, sizeof("abcdefghi"),
"abcdefghi", sizeof("abcdefghi")))
goto err;
- OPENSSL_free(vp);
vp = buf2;
if (!TEST_true(OSSL_PARAM_get_octet_string(p, &vp, sizeof(buf2), &s))
|| !TEST_size_t_eq(s, sizeof("abcdefghi"))
@@ -604,6 +602,7 @@ static int test_param_construct(void)
goto err;
ret = 1;
err:
+ OPENSSL_free(vpn);
BN_free(bn);
BN_free(bn2);
return ret;