diff options
author | tb <> | 2021-12-29 22:54:41 +0000 |
---|---|---|
committer | tb <> | 2021-12-29 22:54:41 +0000 |
commit | dfa5fdc7d89b1bcb09c921c1749bca259f4a2ba3 (patch) | |
tree | b44b325b1847f862dc6d387f1deca1d30ea2e725 | |
parent | a514d94d6116d34e0b60b6dd570ce14347209f5e (diff) | |
download | openbsd-dfa5fdc7d89b1bcb09c921c1749bca259f4a2ba3.tar.gz openbsd-dfa5fdc7d89b1bcb09c921c1749bca259f4a2ba3.tar.bz2 openbsd-dfa5fdc7d89b1bcb09c921c1749bca259f4a2ba3.zip |
Check return values of EVP_* API
CID 345158
-rw-r--r-- | src/regress/lib/libcrypto/sha1/sha1test.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/src/regress/lib/libcrypto/sha1/sha1test.c b/src/regress/lib/libcrypto/sha1/sha1test.c index f1cf09d552..168b422d7a 100644 --- a/src/regress/lib/libcrypto/sha1/sha1test.c +++ b/src/regress/lib/libcrypto/sha1/sha1test.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sha1test.c,v 1.5 2021/12/29 22:53:04 tb Exp $ */ | 1 | /* $OpenBSD: sha1test.c,v 1.6 2021/12/29 22:54:41 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -95,7 +95,11 @@ main(int argc, char *argv[]) | |||
95 | R = ret; | 95 | R = ret; |
96 | i = 1; | 96 | i = 1; |
97 | while (*P != NULL) { | 97 | while (*P != NULL) { |
98 | EVP_Digest(*P, strlen((char *)*P), md, NULL, EVP_sha1(), NULL); | 98 | if (!EVP_Digest(*P, strlen((char *)*P), md, NULL, EVP_sha1(), |
99 | NULL)) { | ||
100 | printf("EVP_Digest failed\n"); | ||
101 | goto err; | ||
102 | } | ||
99 | p = pt(md); | 103 | p = pt(md); |
100 | if (strcmp(p, (char *)*R) != 0) { | 104 | if (strcmp(p, (char *)*R) != 0) { |
101 | printf("error calculating SHA1 on '%s'\n", *P); | 105 | printf("error calculating SHA1 on '%s'\n", *P); |
@@ -109,10 +113,20 @@ main(int argc, char *argv[]) | |||
109 | } | 113 | } |
110 | 114 | ||
111 | memset(buf, 'a', 1000); | 115 | memset(buf, 'a', 1000); |
112 | EVP_DigestInit_ex(c, EVP_sha1(), NULL); | 116 | if (!EVP_DigestInit_ex(c, EVP_sha1(), NULL)) { |
113 | for (i = 0; i < 1000; i++) | 117 | printf("EVP_DigestInit_ex failed\n"); |
114 | EVP_DigestUpdate(c, buf, 1000); | 118 | goto err; |
115 | EVP_DigestFinal_ex(c, md, NULL); | 119 | } |
120 | for (i = 0; i < 1000; i++) { | ||
121 | if (!EVP_DigestUpdate(c, buf, 1000)) { | ||
122 | printf("EVP_DigestUpdate failed\n"); | ||
123 | goto err; | ||
124 | } | ||
125 | } | ||
126 | if (!EVP_DigestFinal_ex(c, md, NULL)) { | ||
127 | printf("EVP_DigestFinal_ex failed\n"); | ||
128 | goto err; | ||
129 | } | ||
116 | p = pt(md); | 130 | p = pt(md); |
117 | 131 | ||
118 | r = bigret; | 132 | r = bigret; |
@@ -125,6 +139,10 @@ main(int argc, char *argv[]) | |||
125 | 139 | ||
126 | EVP_MD_CTX_free(c); | 140 | EVP_MD_CTX_free(c); |
127 | exit(err); | 141 | exit(err); |
142 | |||
143 | err: | ||
144 | EVP_MD_CTX_free(c); | ||
145 | exit(1); | ||
128 | } | 146 | } |
129 | 147 | ||
130 | static char * | 148 | static char * |