OpenCoverage

by_dir.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/x509/by_dir.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9struct lookup_dir_hashes_st {-
10 unsigned long hash;-
11 int suffix;-
12};-
13-
14struct lookup_dir_entry_st {-
15 char *dir;-
16 int dir_type;-
17 struct stack_st_BY_DIR_HASH *hashes;-
18};-
19-
20typedef struct lookup_dir_st {-
21 BUF_MEM *buffer;-
22 struct stack_st_BY_DIR_ENTRY *dirs;-
23 CRYPTO_RWLOCK *lock;-
24} BY_DIR;-
25-
26static int dir_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl,-
27 char **ret);-
28static int new_dir(X509_LOOKUP *lu);-
29static void free_dir(X509_LOOKUP *lu);-
30static int add_cert_dir(BY_DIR *ctx, const char *dir, int type);-
31static int get_cert_by_subject(X509_LOOKUP *xl, X509_LOOKUP_TYPE type,-
32 X509_NAME *name, X509_OBJECT *ret);-
33static X509_LOOKUP_METHOD x509_dir_lookup = {-
34 "Load certs from files in a directory",-
35 new_dir,-
36 free_dir,-
37 -
38 ((void *)0)-
39 ,-
40 -
41 ((void *)0)-
42 ,-
43 dir_ctrl,-
44 get_cert_by_subject,-
45 -
46 ((void *)0)-
47 ,-
48 -
49 ((void *)0)-
50 ,-
51 -
52 ((void *)0)-
53 ,-
54};-
55-
56X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void)-
57{-
58 return
executed 492 times by 1 test: return &x509_dir_lookup;
Executed by:
  • libcrypto.so.1.1
&x509_dir_lookup;
executed 492 times by 1 test: return &x509_dir_lookup;
Executed by:
  • libcrypto.so.1.1
492
59}-
60-
61static int dir_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl,-
62 char **retp)-
63{-
64 int ret = 0;-
65 BY_DIR *ld = (BY_DIR *)ctx->method_data;-
66-
67 switch (cmd) {-
68 case
executed 492 times by 1 test: case 2:
Executed by:
  • libcrypto.so.1.1
2:
executed 492 times by 1 test: case 2:
Executed by:
  • libcrypto.so.1.1
492
69 if (argl == 3
argl == 3Description
TRUEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-492
70 const char *dir = getenv(X509_get_default_cert_dir_env());-
71-
72 if (dir
dirDescription
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-492
73 ret = add_cert_dir(ld, dir, 1);
never executed: ret = add_cert_dir(ld, dir, 1);
0
74 else-
75 ret = add_cert_dir(ld, X509_get_default_cert_dir(),
executed 492 times by 1 test: ret = add_cert_dir(ld, X509_get_default_cert_dir(), 1);
Executed by:
  • libcrypto.so.1.1
492
76 1);
executed 492 times by 1 test: ret = add_cert_dir(ld, X509_get_default_cert_dir(), 1);
Executed by:
  • libcrypto.so.1.1
492
77 if (!ret
!retDescription
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-492
78 ERR_put_error(11,(102),(103),__FILE__,84);-
79 }
never executed: end of block
0
80 }
executed 492 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else
492
81 ret = add_cert_dir(ld, argp, (int)argl);
never executed: ret = add_cert_dir(ld, argp, (int)argl);
0
82 break;
executed 492 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
492
83 }-
84 return
executed 492 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 492 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
492
85}-
86-
87static int new_dir(X509_LOOKUP *lu)-
88{-
89 BY_DIR *a = CRYPTO_malloc(sizeof(*a), __FILE__, 95);-
90-
91 if (a ==
a == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
92 ((void *)0)
a == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
93 ) {-
94 ERR_put_error(11,(153),((1|64)),__FILE__,98);-
95 return
never executed: return 0;
0;
never executed: return 0;
0
96 }-
97-
98 if ((
(a->buffer = B...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
a->buffer = BUF_MEM_new()) ==
(a->buffer = B...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
99 ((void *)0)
(a->buffer = B...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
100 ) {-
101 ERR_put_error(11,(153),((1|64)),__FILE__,103);-
102 goto
never executed: goto err;
err;
never executed: goto err;
0
103 }-
104 a->dirs = -
105 ((void *)0)-
106 ;-
107 a->lock = CRYPTO_THREAD_lock_new();-
108 if (a->lock ==
a->lock == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
109 ((void *)0)
a->lock == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
110 ) {-
111 BUF_MEM_free(a->buffer);-
112 ERR_put_error(11,(153),((1|64)),__FILE__,110);-
113 goto
never executed: goto err;
err;
never executed: goto err;
0
114 }-
115 lu->method_data = a;-
116 return
executed 492 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 492 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
492
117-
118 err:-
119 CRYPTO_free(a, __FILE__, 117);-
120 return
never executed: return 0;
0;
never executed: return 0;
0
121}-
122-
123static void by_dir_hash_free(BY_DIR_HASH *hash)-
124{-
125 CRYPTO_free(hash, __FILE__, 123);-
126}
never executed: end of block
0
127-
128static int by_dir_hash_cmp(const BY_DIR_HASH *const *a,-
129 const BY_DIR_HASH *const *b)-
130{-
131 if ((*
(*a)->hash > (*b)->hashDescription
TRUEnever evaluated
FALSEnever evaluated
a)->hash > (*b)->hash
(*a)->hash > (*b)->hashDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
132 return
never executed: return 1;
1;
never executed: return 1;
0
133 if ((*
(*a)->hash < (*b)->hashDescription
TRUEnever evaluated
FALSEnever evaluated
a)->hash < (*b)->hash
(*a)->hash < (*b)->hashDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
134 return
never executed: return -1;
-1;
never executed: return -1;
0
135 return
never executed: return 0;
0;
never executed: return 0;
0
136}-
137-
138static void by_dir_entry_free(BY_DIR_ENTRY *ent)-
139{-
140 CRYPTO_free(ent->dir, __FILE__, 138);-
141 sk_BY_DIR_HASH_pop_free(ent->hashes, by_dir_hash_free);-
142 CRYPTO_free(ent, __FILE__, 140);-
143}
executed 492 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
492
144-
145static void free_dir(X509_LOOKUP *lu)-
146{-
147 BY_DIR *a = (BY_DIR *)lu->method_data;-
148-
149 sk_BY_DIR_ENTRY_pop_free(a->dirs, by_dir_entry_free);-
150 BUF_MEM_free(a->buffer);-
151 CRYPTO_THREAD_lock_free(a->lock);-
152 CRYPTO_free(a, __FILE__, 150);-
153}
executed 492 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
492
154-
155static int add_cert_dir(BY_DIR *ctx, const char *dir, int type)-
156{-
157 int j;-
158 size_t len;-
159 const char *s, *ss, *p;-
160-
161 if (dir ==
dir == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
162 ((void *)0)
dir == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
163 || !*dir
!*dirDescription
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-492
164 ERR_put_error(11,(100),(113),__FILE__,160);-
165 return
never executed: return 0;
0;
never executed: return 0;
0
166 }-
167-
168 s = dir;-
169 p = s;-
170 do {-
171 if ((*
(*p == ':')Description
TRUEnever evaluated
FALSEevaluated 10332 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
p == ':')
(*p == ':')Description
TRUEnever evaluated
FALSEevaluated 10332 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| (*
(*p == '\0')Description
TRUEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 9840 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
p == '\0')
(*p == '\0')Description
TRUEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 9840 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-10332
172 BY_DIR_ENTRY *ent;-
173-
174 ss = s;-
175 s = p + 1;-
176 len = p - ss;-
177 if (len == 0
len == 0Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-492
178 continue;
never executed: continue;
0
179 for (j = 0; j < sk_BY_DIR_ENTRY_num(ctx->dirs)
j < sk_BY_DIR_...num(ctx->dirs)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; j++) {
0-492
180 ent = sk_BY_DIR_ENTRY_value(ctx->dirs, j);-
181 if (strlen(ent->dir) == len
strlen(ent->dir) == lenDescription
TRUEnever evaluated
FALSEnever evaluated
&&
0
182 (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__extension__ (__builtin_constant_p (
__builtin_constant_p ( len )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
183 len
__builtin_constant_p ( len )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
184 )
__builtin_constant_p ( len )Description
TRUEnever evaluated
FALSEnever evaluated
&& ((__builtin_constant_p (
__builtin_cons...p ( ent->dir )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
185 ent->dir
__builtin_cons...p ( ent->dir )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
186 )
__builtin_cons...p ( ent->dir )Description
TRUEnever evaluated
FALSEnever evaluated
&& strlen (
strlen ( ent->...ze_t) ( len ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
187 ent->dir
strlen ( ent->...ze_t) ( len ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
188 ) < ((size_t) (
strlen ( ent->...ze_t) ( len ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
189 len
strlen ( ent->...ze_t) ( len ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
190 ))
strlen ( ent->...ze_t) ( len ))Description
TRUEnever evaluated
FALSEnever evaluated
) || (__builtin_constant_p (
__builtin_constant_p ( ss )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
191 ss
__builtin_constant_p ( ss )Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
192 )
__builtin_constant_p ( ss )Description
TRUEnever evaluated
FALSEnever evaluated
&& strlen (
strlen ( ss ) ...ze_t) ( len ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
193 ss
strlen ( ss ) ...ze_t) ( len ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
194 ) < ((size_t) (
strlen ( ss ) ...ze_t) ( len ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
195 len
strlen ( ss ) ...ze_t) ( len ))Description
TRUEnever evaluated
FALSEnever evaluated
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
196 ))
strlen ( ss ) ...ze_t) ( len ))Description
TRUEnever evaluated
FALSEnever evaluated
)) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
197 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
198 ) && __builtin_constant_p (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
199 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
200 ) && (__s1_len = __builtin_strlen (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
201 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
202 ), __s2_len = __builtin_strlen (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
203 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
204 ), (!((size_t)(const void *)((
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
205 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
206 ) + 1) - (size_t)(const void *)(
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
207 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
208 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
209 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
210 ) + 1) - (size_t)(const void *)(
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
211 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
212 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
213 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
214 ,
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
215 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
216 ) : (__builtin_constant_p (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
217 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
218 ) && ((size_t)(const void *)((
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
219 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
220 ) + 1) - (size_t)(const void *)(
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
221 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
222 ) == 1) && (__s1_len = __builtin_strlen (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
223 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
224 ), __s1_len < 4) ? (__builtin_constant_p (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
225 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
226 ) && ((size_t)(const void *)((
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
227 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
228 ) + 1) - (size_t)(const void *)(
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
229 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
230 ) == 1) ? __builtin_strcmp (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
231 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
232 ,
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
233 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
234 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
235 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
236 ); int __result = (((const unsigned char *) (const char *) (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
237 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
238 ))[0] - __s2[0]); if (__s1_len > 0
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
239 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
240 ))[1] - __s2[1]); if (__s1_len > 1
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
241 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
242 ))[2] - __s2[2]); if (__s1_len > 2
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( ent->dir ))[3] - __s2[3]);
0
243 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( ent->dir ))[3] - __s2[3]);
0
244 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
245 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
246 ) && ((size_t)(const void *)((
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
247 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
248 ) + 1) - (size_t)(const void *)(
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
249 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
250 ) == 1) && (__s2_len = __builtin_strlen (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
251 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
252 ), __s2_len < 4) ? (__builtin_constant_p (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
253 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
254 ) && ((size_t)(const void *)((
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
255 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
256 ) + 1) - (size_t)(const void *)(
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
257 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
258 ) == 1) ? __builtin_strcmp (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
259 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
260 ,
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
261 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
262 ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
263 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
264 ); int __result = (((const unsigned char *) (const char *) (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
265 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
266 ))[0] - __s2[0]); if (__s2_len > 0
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
267 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
268 ))[1] - __s2[1]); if (__s2_len > 1
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) { __result = (((const unsigned char *) (const char *) (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
269 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
270 ))[2] - __s2[2]); if (__s2_len > 2
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
&& __result == 0
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
) __result = (((const unsigned char *) (const char *) (
never executed: __result = (((const unsigned char *) (const char *) ( ss ))[3] - __s2[3]);
0
271 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
never executed: __result = (((const unsigned char *) (const char *) ( ss ))[3] - __s2[3]);
0
272 ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
273 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
274 ,
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
275 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
276 )))); }) : strncmp (
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
277 ent->dir
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
278 ,
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
279 ss
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
280 ,
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
281 len
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
282 )))
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
283 == 0
(__extension__..., len ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
284 break;
never executed: break;
0
285 }
never executed: end of block
0
286 if (j < sk_BY_DIR_ENTRY_num(ctx->dirs)
j < sk_BY_DIR_...num(ctx->dirs)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-492
287 continue;
never executed: continue;
0
288 if (ctx->dirs ==
ctx->dirs == ((void *)0)Description
TRUEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-492
289 ((void *)0)
ctx->dirs == ((void *)0)Description
TRUEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-492
290 ) {-
291 ctx->dirs = sk_BY_DIR_ENTRY_new_null();-
292 if (!ctx->dirs
!ctx->dirsDescription
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-492
293 ERR_put_error(11,(100),((1|64)),__FILE__,185);-
294 return
never executed: return 0;
0;
never executed: return 0;
0
295 }-
296 }
executed 492 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
492
297 ent = CRYPTO_malloc(sizeof(*ent), __FILE__, 189);-
298 if (ent ==
ent == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
299 ((void *)0)
ent == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
300 ) {-
301 ERR_put_error(11,(100),((1|64)),__FILE__,191);-
302 return
never executed: return 0;
0;
never executed: return 0;
0
303 }-
304 ent->dir_type = type;-
305 ent->hashes = sk_BY_DIR_HASH_new(by_dir_hash_cmp);-
306 ent->dir = CRYPTO_strndup(ss, len, __FILE__, 196);-
307 if (ent->dir ==
ent->dir == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
308 ((void *)0)
ent->dir == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
309 || ent->hashes ==
ent->hashes == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
310 ((void *)0)
ent->hashes == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-492
311 ) {-
312 by_dir_entry_free(ent);-
313 return
never executed: return 0;
0;
never executed: return 0;
0
314 }-
315 if (!sk_BY_DIR_ENTRY_push(ctx->dirs, ent)
!sk_BY_DIR_ENT...tx->dirs, ent)Description
TRUEnever evaluated
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-492
316 by_dir_entry_free(ent);-
317 ERR_put_error(11,(100),((1|64)),__FILE__,203);-
318 return
never executed: return 0;
0;
never executed: return 0;
0
319 }-
320 }
executed 492 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
492
321 }
executed 10332 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
while (*
*p++ != '\0'Description
TRUEevaluated 9840 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
p++ != '\0'
*p++ != '\0'Description
TRUEevaluated 9840 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 492 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
);
492-10332
322 return
executed 492 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 492 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
492
323}-
324-
325static int get_cert_by_subject(X509_LOOKUP *xl, X509_LOOKUP_TYPE type,-
326 X509_NAME *name, X509_OBJECT *ret)-
327{-
328 BY_DIR *ctx;-
329 union {-
330 X509 st_x509;-
331 X509_CRL crl;-
332 } data;-
333 int ok = 0;-
334 int i, j, k;-
335 unsigned long h;-
336 BUF_MEM *b = -
337 ((void *)0)-
338 ;-
339 X509_OBJECT stmp, *tmp;-
340 const char *postfix = "";-
341-
342 if (name ==
name == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-396
343 ((void *)0)
name == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-396
344 )-
345 return
never executed: return 0;
0;
never executed: return 0;
0
346-
347 stmp.type = type;-
348 if (type == X509_LU_X509
type == X509_LU_X509Description
TRUEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-396
349 data.st_x509.cert_info.subject = name;-
350 stmp.data.x509 = &data.st_x509;-
351 postfix = "";-
352 }
executed 396 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else if (type == X509_LU_CRL
type == X509_LU_CRLDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0-396
353 data.crl.crl.issuer = name;-
354 stmp.data.crl = &data.crl;-
355 postfix = "r";-
356 }
never executed: end of block
else {
0
357 ERR_put_error(11,(103),(112),__FILE__,239);-
358 goto
never executed: goto finish;
finish;
never executed: goto finish;
0
359 }-
360-
361 if ((
(b = BUF_MEM_n...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
b = BUF_MEM_new()) ==
(b = BUF_MEM_n...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-396
362 ((void *)0)
(b = BUF_MEM_n...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-396
363 ) {-
364 ERR_put_error(11,(103),(7),__FILE__,244);-
365 goto
never executed: goto finish;
finish;
never executed: goto finish;
0
366 }-
367-
368 ctx = (BY_DIR *)xl->method_data;-
369-
370 h = X509_NAME_hash(name);-
371 for (i = 0; i < sk_BY_DIR_ENTRY_num(ctx->dirs)
i < sk_BY_DIR_...num(ctx->dirs)Description
TRUEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++) {
396
372 BY_DIR_ENTRY *ent;-
373 int idx;-
374 BY_DIR_HASH htmp, *hent;-
375-
376 ent = sk_BY_DIR_ENTRY_value(ctx->dirs, i);-
377 j = strlen(ent->dir) + 1 + 8 + 6 + 1 + 1;-
378 if (!BUF_MEM_grow(b, j)
!BUF_MEM_grow(b, j)Description
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-396
379 ERR_put_error(11,(103),((1|64)),__FILE__,259);-
380 goto
never executed: goto finish;
finish;
never executed: goto finish;
0
381 }-
382 if (type == X509_LU_CRL
type == X509_LU_CRLDescription
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
&& ent->hashes
ent->hashesDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0-396
383 htmp.hash = h;-
384 CRYPTO_THREAD_read_lock(ctx->lock);-
385 idx = sk_BY_DIR_HASH_find(ent->hashes, &htmp);-
386 if (idx >= 0
idx >= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
387 hent = sk_BY_DIR_HASH_value(ent->hashes, idx);-
388 k = hent->suffix;-
389 }
never executed: end of block
else {
0
390 hent = -
391 ((void *)0)-
392 ;-
393 k = 0;-
394 }
never executed: end of block
0
395 CRYPTO_THREAD_unlock(ctx->lock);-
396 }
never executed: end of block
else {
0
397 k = 0;-
398 hent = -
399 ((void *)0)-
400 ;-
401 }
executed 396 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
396
402 for (;;) {-
403 char c = '/';-
404 if (c == '\0'
c == '\0'Description
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-396
405-
406-
407-
408-
409 BIO_snprintf(b->data, b->max,-
410 "%s%08lx.%s%d", ent->dir, h, postfix, k);-
411 }
never executed: end of block
else {
0
412 BIO_snprintf(b->data, b->max,-
413 "%s%c%08lx.%s%d", ent->dir, c, h, postfix, k);-
414 }
executed 396 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
396
415-
416-
417-
418-
419 {-
420 struct stat st;-
421 if (stat(b->data, &st) < 0
stat(b->data, &st) < 0Description
TRUEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-396
422 break;
executed 396 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
396
423 }-
424-
425-
426 if (type == X509_LU_X509
type == X509_LU_X509Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
427 if ((
(X509_load_cer...ir_type)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
X509_load_cert_file(xl, b->data, ent->dir_type)) == 0
(X509_load_cer...ir_type)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
428 break;
never executed: break;
0
429 }
never executed: end of block
else if (type == X509_LU_CRL
type == X509_LU_CRLDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
430 if ((
(X509_load_crl...ir_type)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
X509_load_crl_file(xl, b->data, ent->dir_type)) == 0
(X509_load_crl...ir_type)) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
431 break;
never executed: break;
0
432 }
never executed: end of block
0
433-
434 k++;-
435 }
never executed: end of block
0
436-
437-
438-
439-
440 CRYPTO_THREAD_write_lock(ctx->lock);-
441 j = sk_X509_OBJECT_find(xl->store_ctx->objs, &stmp);-
442 tmp = sk_X509_OBJECT_value(xl->store_ctx->objs, j);-
443 CRYPTO_THREAD_unlock(ctx->lock);-
444-
445-
446-
447 if (type == X509_LU_CRL
type == X509_LU_CRLDescription
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-396
448 CRYPTO_THREAD_write_lock(ctx->lock);-
449-
450-
451-
452-
453 if (hent ==
hent == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
454 ((void *)0)
hent == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
455 ) {-
456 htmp.hash = h;-
457 idx = sk_BY_DIR_HASH_find(ent->hashes, &htmp);-
458 hent = sk_BY_DIR_HASH_value(ent->hashes, idx);-
459 }
never executed: end of block
0
460 if (hent ==
hent == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
461 ((void *)0)
hent == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
462 ) {-
463 hent = CRYPTO_malloc(sizeof(*hent), __FILE__, 349);-
464 if (hent ==
hent == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
465 ((void *)0)
hent == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
466 ) {-
467 CRYPTO_THREAD_unlock(ctx->lock);-
468 ERR_put_error(11,(103),((1|64)),__FILE__,352);-
469 ok = 0;-
470 goto
never executed: goto finish;
finish;
never executed: goto finish;
0
471 }-
472 hent->hash = h;-
473 hent->suffix = k;-
474 if (!sk_BY_DIR_HASH_push(ent->hashes, hent)
!sk_BY_DIR_HAS...>hashes, hent)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
475 CRYPTO_THREAD_unlock(ctx->lock);-
476 CRYPTO_free(hent, __FILE__, 360);-
477 ERR_put_error(11,(103),((1|64)),__FILE__,361);-
478 ok = 0;-
479 goto
never executed: goto finish;
finish;
never executed: goto finish;
0
480 }-
481 }
never executed: end of block
else if (hent->suffix < k
hent->suffix < kDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
482 hent->suffix = k;-
483 }
never executed: end of block
0
484-
485 CRYPTO_THREAD_unlock(ctx->lock);-
486-
487 }
never executed: end of block
0
488-
489 if (tmp !=
tmp != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-396
490 ((void *)0)
tmp != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 396 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-396
491 ) {-
492 ok = 1;-
493 ret->type = tmp->type;-
494 memcpy(&ret->data, &tmp->data, sizeof(ret->data));-
495-
496-
497-
498-
499-
500 ERR_clear_error();-
501-
502 goto
never executed: goto finish;
finish;
never executed: goto finish;
0
503 }-
504 }
executed 396 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
396
505 finish:
code before this statement executed 396 times by 1 test: finish:
Executed by:
  • libcrypto.so.1.1
396
506 BUF_MEM_free(b);-
507 return
executed 396 times by 1 test: return ok;
Executed by:
  • libcrypto.so.1.1
ok;
executed 396 times by 1 test: return ok;
Executed by:
  • libcrypto.so.1.1
396
508}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2