diff options
author | tb <> | 2021-12-04 07:58:10 +0000 |
---|---|---|
committer | tb <> | 2021-12-04 07:58:10 +0000 |
commit | d6397c6136efeac1c7ed9a52d7492a73595da922 (patch) | |
tree | a9c922d99f8ef1759083205d991cdfa929bc425a /src | |
parent | 0121f925f58e525d0c2c34fdf6b3d69a72616ee2 (diff) | |
download | openbsd-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.c | 26 |
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 | |||
65 | main(int argc, char **argv) { | 65 | main(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 |