From 29cd8b95106cc91d742b2dc806a8e044c39fc9a1 Mon Sep 17 00:00:00 2001 From: tb <> Date: Mon, 10 Jan 2022 15:14:27 +0000 Subject: NULL out pointers after transferring them to the DSA object. --- src/usr.bin/openssl/testdsa.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/usr.bin/openssl/testdsa.h') diff --git a/src/usr.bin/openssl/testdsa.h b/src/usr.bin/openssl/testdsa.h index 20cc97eeaa..47560fd42c 100644 --- a/src/usr.bin/openssl/testdsa.h +++ b/src/usr.bin/openssl/testdsa.h @@ -1,4 +1,4 @@ -/* $OpenBSD: testdsa.h,v 1.3 2022/01/10 15:04:06 tb Exp $ */ +/* $OpenBSD: testdsa.h,v 1.4 2022/01/10 15:14:27 tb Exp $ */ DSA *get_dsa512(void); DSA *get_dsa1024(void); @@ -221,20 +221,28 @@ get_dsa(const unsigned char *priv, size_t priv_size, if ((dsa = DSA_new()) == NULL) return (NULL); + priv_key = BN_bin2bn(priv, priv_size, NULL); pub_key = BN_bin2bn(pub, pub_size, NULL); if (priv_key == NULL || pub_key == NULL) goto err; + if (!DSA_set0_key(dsa, pub_key, priv_key)) goto err; + pub_key = NULL; + priv_key = NULL; p = BN_bin2bn(p, p_size, NULL); q = BN_bin2bn(q, q_size, NULL); g = BN_bin2bn(g, g_size, NULL); if (p == NULL || q == NULL || g == NULL) goto err; + if (!DSA_set0_pqg(dsa, p, q, g)) goto err; + p = NULL; + q = NULL; + g = NULL; return dsa; -- cgit v1.2.3-55-g6feb