summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbeck <>2023-11-30 17:01:04 +0000
committerbeck <>2023-11-30 17:01:04 +0000
commit1585202f052c6925b43e2faa17ba8f0bcbd644a3 (patch)
tree197a1d57b25aa19f1e15e38f3fe90c1c639c8f8f
parentfc4faac9b396d551d0f7729a4dffa6ee31ac2d3e (diff)
downloadopenbsd-1585202f052c6925b43e2faa17ba8f0bcbd644a3.tar.gz
openbsd-1585202f052c6925b43e2faa17ba8f0bcbd644a3.tar.bz2
openbsd-1585202f052c6925b43e2faa17ba8f0bcbd644a3.zip
Clean up and de-spaghettize by_file_callback
I had to read this for other purposes and it exceeded my muppetry tolerance. ok tb@
-rw-r--r--src/lib/libcrypto/x509/by_file.c36
1 files changed, 15 insertions, 21 deletions
diff --git a/src/lib/libcrypto/x509/by_file.c b/src/lib/libcrypto/x509/by_file.c
index 606f4c8d0c..fc2d72bbd2 100644
--- a/src/lib/libcrypto/x509/by_file.c
+++ b/src/lib/libcrypto/x509/by_file.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: by_file.c,v 1.28 2023/02/16 08:38:17 tb Exp $ */ 1/* $OpenBSD: by_file.c,v 1.29 2023/11/30 17:01:04 beck 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,28 +95,22 @@ static int
95by_file_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl, 95by_file_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl,
96 char **ret) 96 char **ret)
97{ 97{
98 int ok = 0; 98 const char *file = argp;
99 int type = argl;
99 100
100 switch (cmd) { 101 if (cmd != X509_L_FILE_LOAD)
101 case X509_L_FILE_LOAD: 102 return 0;
102 if (argl == X509_FILETYPE_DEFAULT) { 103
103 ok = (X509_load_cert_crl_file(ctx, 104 if (argl == X509_FILETYPE_DEFAULT) {
104 X509_get_default_cert_file(), 105 file = X509_get_default_cert_file();
105 X509_FILETYPE_PEM) != 0); 106 type = X509_FILETYPE_PEM;
106 if (!ok) {
107 X509error(X509_R_LOADING_DEFAULTS);
108 }
109 } else {
110 if (argl == X509_FILETYPE_PEM)
111 ok = (X509_load_cert_crl_file(ctx, argp,
112 X509_FILETYPE_PEM) != 0);
113 else
114 ok = (X509_load_cert_file(ctx,
115 argp, (int)argl) != 0);
116 }
117 break;
118 } 107 }
119 return ok; 108 if (X509_load_cert_crl_file(ctx, file, type) != 0)
109 return 1;
110 if (argl == X509_FILETYPE_DEFAULT)
111 X509error(X509_R_LOADING_DEFAULTS);
112
113 return 0;
120} 114}
121 115
122int 116int