summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2021-12-04 07:58:10 +0000
committertb <>2021-12-04 07:58:10 +0000
commitd6397c6136efeac1c7ed9a52d7492a73595da922 (patch)
treea9c922d99f8ef1759083205d991cdfa929bc425a /src
parent0121f925f58e525d0c2c34fdf6b3d69a72616ee2 (diff)
downloadopenbsd-d6397c6136efeac1c7ed9a52d7492a73595da922.tar.gz
openbsd-d6397c6136efeac1c7ed9a52d7492a73595da922.tar.bz2
openbsd-d6397c6136efeac1c7ed9a52d7492a73595da922.zip
Explicitly free EVP_MD_CTX to appease asan. Reported by Ilya Shipitsin.
Diffstat (limited to 'src')
-rw-r--r--src/regress/lib/libcrypto/sha256/sha256test.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/regress/lib/libcrypto/sha256/sha256test.c b/src/regress/lib/libcrypto/sha256/sha256test.c
index b20724054a..4732611d55 100644
--- a/src/regress/lib/libcrypto/sha256/sha256test.c
+++ b/src/regress/lib/libcrypto/sha256/sha256test.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sha256test.c,v 1.5 2021/11/18 21:25:01 tb Exp $ */ 1/* $OpenBSD: sha256test.c,v 1.6 2021/12/04 07:58:10 tb Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 2004 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 2004 The OpenSSL Project. All rights reserved.
4 * ==================================================================== 4 * ====================================================================
@@ -65,7 +65,8 @@ int
65main(int argc, char **argv) { 65main(int argc, char **argv) {
66 unsigned char md[SHA256_DIGEST_LENGTH]; 66 unsigned char md[SHA256_DIGEST_LENGTH];
67 int i; 67 int i;
68 EVP_MD_CTX *evp; 68 int ret = 1;
69 EVP_MD_CTX *evp = NULL;
69 70
70 fprintf(stdout, "Testing SHA-256 "); 71 fprintf(stdout, "Testing SHA-256 ");
71 72
@@ -73,7 +74,7 @@ main(int argc, char **argv) {
73 if (memcmp(md, app_b1, sizeof(app_b1))) { 74 if (memcmp(md, app_b1, sizeof(app_b1))) {
74 fflush(stdout); 75 fflush(stdout);
75 fprintf(stderr, "\nTEST 1 of 3 failed.\n"); 76 fprintf(stderr, "\nTEST 1 of 3 failed.\n");
76 return 1; 77 goto err;
77 } 78 }
78 fprintf(stdout, "."); 79 fprintf(stdout, ".");
79 fflush(stdout); 80 fflush(stdout);
@@ -85,7 +86,7 @@ main(int argc, char **argv) {
85 if (memcmp(md, app_b2, sizeof(app_b2))) { 86 if (memcmp(md, app_b2, sizeof(app_b2))) {
86 fflush(stdout); 87 fflush(stdout);
87 fprintf(stderr, "\nTEST 2 of 3 failed.\n"); 88 fprintf(stderr, "\nTEST 2 of 3 failed.\n");
88 return 1; 89 goto err;
89 } 90 }
90 fprintf(stdout, "."); 91 fprintf(stdout, ".");
91 fflush(stdout); 92 fflush(stdout);
@@ -93,7 +94,7 @@ main(int argc, char **argv) {
93 if ((evp = EVP_MD_CTX_new()) == NULL) { 94 if ((evp = EVP_MD_CTX_new()) == NULL) {
94 fflush(stdout); 95 fflush(stdout);
95 fprintf(stderr, "\nEVP_MD_CTX_new() failed.\n"); 96 fprintf(stderr, "\nEVP_MD_CTX_new() failed.\n");
96 return 1; 97 goto err;
97 } 98 }
98 EVP_DigestInit_ex(evp, EVP_sha256(), NULL); 99 EVP_DigestInit_ex(evp, EVP_sha256(), NULL);
99 for (i = 0; i < 1000000; i += 160) 100 for (i = 0; i < 1000000; i += 160)
@@ -110,7 +111,7 @@ main(int argc, char **argv) {
110 if (memcmp(md, app_b3, sizeof(app_b3))) { 111 if (memcmp(md, app_b3, sizeof(app_b3))) {
111 fflush(stdout); 112 fflush(stdout);
112 fprintf(stderr, "\nTEST 3 of 3 failed.\n"); 113 fprintf(stderr, "\nTEST 3 of 3 failed.\n");
113 return 1; 114 goto err;
114 } 115 }
115 fprintf(stdout, "."); 116 fprintf(stdout, ".");
116 fflush(stdout); 117 fflush(stdout);
@@ -123,7 +124,7 @@ main(int argc, char **argv) {
123 if (memcmp(md, addenum_1, sizeof(addenum_1))) { 124 if (memcmp(md, addenum_1, sizeof(addenum_1))) {
124 fflush(stdout); 125 fflush(stdout);
125 fprintf(stderr, "\nTEST 1 of 3 failed.\n"); 126 fprintf(stderr, "\nTEST 1 of 3 failed.\n");
126 return 1; 127 goto err;
127 } 128 }
128 fprintf(stdout, "."); 129 fprintf(stdout, ".");
129 fflush(stdout); 130 fflush(stdout);
@@ -135,7 +136,7 @@ main(int argc, char **argv) {
135 if (memcmp(md, addenum_2, sizeof(addenum_2))) { 136 if (memcmp(md, addenum_2, sizeof(addenum_2))) {
136 fflush(stdout); 137 fflush(stdout);
137 fprintf(stderr, "\nTEST 2 of 3 failed.\n"); 138 fprintf(stderr, "\nTEST 2 of 3 failed.\n");
138 return 1; 139 goto err;
139 } 140 }
140 fprintf(stdout, "."); 141 fprintf(stdout, ".");
141 fflush(stdout); 142 fflush(stdout);
@@ -152,7 +153,7 @@ main(int argc, char **argv) {
152 if (memcmp(md, addenum_3, sizeof(addenum_3))) { 153 if (memcmp(md, addenum_3, sizeof(addenum_3))) {
153 fflush(stdout); 154 fflush(stdout);
154 fprintf(stderr, "\nTEST 3 of 3 failed.\n"); 155 fprintf(stderr, "\nTEST 3 of 3 failed.\n");
155 return 1; 156 goto err;
156 } 157 }
157 fprintf(stdout, "."); 158 fprintf(stdout, ".");
158 fflush(stdout); 159 fflush(stdout);
@@ -160,6 +161,11 @@ main(int argc, char **argv) {
160 fprintf(stdout, " passed.\n"); 161 fprintf(stdout, " passed.\n");
161 fflush(stdout); 162 fflush(stdout);
162 163
163 return 0; 164 ret = 0;
165
166 err:
167 EVP_MD_CTX_free(evp);
168
169 return ret;
164} 170}
165#endif 171#endif