Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | | - |
21 | | - |
22 | | - |
23 | | - |
24 | | - |
25 | | - |
26 | | - |
27 | | - |
28 | | - |
29 | | - |
30 | | - |
31 | | - |
32 | | - |
33 | | - |
34 | | - |
35 | | - |
36 | | - |
37 | | - |
38 | | - |
39 | | - |
40 | | - |
41 | | - |
42 | | - |
43 | | - |
44 | | - |
45 | | - |
46 | | - |
47 | | - |
48 | | - |
49 | | - |
50 | | - |
51 | | - |
52 | | - |
53 | | - |
54 | | - |
55 | | - |
56 | | - |
57 | | - |
58 | | - |
59 | #include <ctype.h> | - |
60 | #include <stdio.h> | - |
61 | #include <string.h> | - |
62 | #include <unistd.h> | - |
63 | | - |
64 | #include <openssl/conf.h> | - |
65 | #include <openssl/crypto.h> | - |
66 | #include <openssl/dso.h> | - |
67 | #include <openssl/err.h> | - |
68 | #include <openssl/x509.h> | - |
69 | | - |
70 | #define DSO_mod_init_name "OPENSSL_init" | - |
71 | #define DSO_mod_finish_name "OPENSSL_finish" | - |
72 | | - |
73 | | - |
74 | | - |
75 | | - |
76 | | - |
77 | | - |
78 | struct conf_module_st { | - |
79 | | - |
80 | DSO *dso; | - |
81 | | - |
82 | char *name; | - |
83 | | - |
84 | conf_init_func *init; | - |
85 | | - |
86 | conf_finish_func *finish; | - |
87 | | - |
88 | int links; | - |
89 | void *usr_data; | - |
90 | }; | - |
91 | | - |
92 | | - |
93 | | - |
94 | | - |
95 | | - |
96 | | - |
97 | | - |
98 | struct conf_imodule_st { | - |
99 | CONF_MODULE *pmod; | - |
100 | char *name; | - |
101 | char *value; | - |
102 | unsigned long flags; | - |
103 | void *usr_data; | - |
104 | }; | - |
105 | | - |
106 | static STACK_OF(CONF_MODULE) *supported_modules = NULL; | - |
107 | static STACK_OF(CONF_IMODULE) *initialized_modules = NULL; | - |
108 | | - |
109 | static void module_free(CONF_MODULE *md); | - |
110 | static void module_finish(CONF_IMODULE *imod); | - |
111 | static int module_run(const CONF *cnf, char *name, char *value, | - |
112 | unsigned long flags); | - |
113 | static CONF_MODULE *module_add(DSO *dso, const char *name, | - |
114 | conf_init_func *ifunc, conf_finish_func *ffunc); | - |
115 | static CONF_MODULE *module_find(char *name); | - |
116 | static int module_init(CONF_MODULE *pmod, char *name, char *value, | - |
117 | const CONF *cnf); | - |
118 | static CONF_MODULE *module_load_dso(const CONF *cnf, char *name, char *value, | - |
119 | unsigned long flags); | - |
120 | | - |
121 | | - |
122 | | - |
123 | int | - |
124 | CONF_modules_load(const CONF *cnf, const char *appname, unsigned long flags) | - |
125 | { | - |
126 | STACK_OF(CONF_VALUE) *values; | - |
127 | CONF_VALUE *vl; | - |
128 | char *vsection = NULL; | - |
129 | | - |
130 | int ret, i; | - |
131 | | - |
132 | if (!cnf)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
133 | return 1; never executed: return 1; | 0 |
134 | | - |
135 | if (appname)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
136 | vsection = NCONF_get_string(cnf, NULL, appname); never executed: vsection = NCONF_get_string(cnf, ((void *)0) , appname); | 0 |
137 | | - |
138 | if (!appname || (!vsection && (flags & CONF_MFLAGS_DEFAULT_SECTION)))TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
139 | vsection = NCONF_get_string(cnf, NULL, "openssl_conf"); never executed: vsection = NCONF_get_string(cnf, ((void *)0) , "openssl_conf"); | 0 |
140 | | - |
141 | if (!vsection) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
142 | ERR_clear_error(); | - |
143 | return 1; never executed: return 1; | 0 |
144 | } | - |
145 | | - |
146 | values = NCONF_get_section(cnf, vsection); | - |
147 | | - |
148 | if (!values)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
149 | return 0; never executed: return 0; | 0 |
150 | | - |
151 | for (i = 0; i < sk_CONF_VALUE_num(values); i++) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
152 | vl = sk_CONF_VALUE_value(values, i); | - |
153 | ret = module_run(cnf, vl->name, vl->value, flags); | - |
154 | if (ret <= 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
155 | if (!(flags & CONF_MFLAGS_IGNORE_ERRORS))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
156 | return ret; never executed: return ret; | 0 |
157 | } never executed: end of block | 0 |
158 | | - |
159 | return 1; never executed: return 1; | 0 |
160 | } | - |
161 | | - |
162 | int | - |
163 | CONF_modules_load_file(const char *filename, const char *appname, | - |
164 | unsigned long flags) | - |
165 | { | - |
166 | char *file = NULL; | - |
167 | CONF *conf = NULL; | - |
168 | int ret = 0; | - |
169 | conf = NCONF_new(NULL); | - |
170 | if (!conf)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
171 | goto err; never executed: goto err; | 0 |
172 | | - |
173 | if (filename == NULL) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
174 | file = CONF_get1_default_config_file(); | - |
175 | if (!file)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
176 | goto err; never executed: goto err; | 0 |
177 | } else never executed: end of block | 0 |
178 | file = (char *)filename; never executed: file = (char *)filename; | 0 |
179 | | - |
180 | if (NCONF_load(conf, file, NULL) <= 0) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
181 | if ((flags & CONF_MFLAGS_IGNORE_MISSING_FILE) &&TRUE | never evaluated | FALSE | never evaluated |
| 0 |
182 | (ERR_GET_REASON(ERR_peek_last_error()) ==TRUE | never evaluated | FALSE | never evaluated |
| 0 |
183 | CONF_R_NO_SUCH_FILE)) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
184 | ERR_clear_error(); | - |
185 | ret = 1; | - |
186 | } never executed: end of block | 0 |
187 | goto err; never executed: goto err; | 0 |
188 | } | - |
189 | | - |
190 | ret = CONF_modules_load(conf, appname, flags); | - |
191 | | - |
192 | err: code before this statement never executed: err: | 0 |
193 | if (filename == NULL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
194 | free(file); never executed: free(file); | 0 |
195 | NCONF_free(conf); | - |
196 | | - |
197 | return ret; never executed: return ret; | 0 |
198 | } | - |
199 | | - |
200 | static int | - |
201 | module_run(const CONF *cnf, char *name, char *value, unsigned long flags) | - |
202 | { | - |
203 | CONF_MODULE *md; | - |
204 | int ret; | - |
205 | | - |
206 | md = module_find(name); | - |
207 | | - |
208 | | - |
209 | if (!md && !(flags & CONF_MFLAGS_NO_DSO))TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
210 | md = module_load_dso(cnf, name, value, flags); never executed: md = module_load_dso(cnf, name, value, flags); | 0 |
211 | | - |
212 | if (!md) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
213 | if (!(flags & CONF_MFLAGS_SILENT)) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
214 | CONFerror(CONF_R_UNKNOWN_MODULE_NAME); | - |
215 | ERR_asprintf_error_data("module=%s", name); | - |
216 | } never executed: end of block | 0 |
217 | return -1; never executed: return -1; | 0 |
218 | } | - |
219 | | - |
220 | ret = module_init(md, name, value, cnf); | - |
221 | | - |
222 | if (ret <= 0) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
223 | if (!(flags & CONF_MFLAGS_SILENT)) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
224 | CONFerror(CONF_R_MODULE_INITIALIZATION_ERROR); | - |
225 | ERR_asprintf_error_data | - |
226 | ("module=%s, value=%s, retcode=%-8d", | - |
227 | name, value, ret); | - |
228 | } never executed: end of block | 0 |
229 | } never executed: end of block | 0 |
230 | | - |
231 | return ret; never executed: return ret; | 0 |
232 | } | - |
233 | | - |
234 | | - |
235 | static CONF_MODULE * | - |
236 | module_load_dso(const CONF *cnf, char *name, char *value, unsigned long flags) | - |
237 | { | - |
238 | DSO *dso = NULL; | - |
239 | conf_init_func *ifunc; | - |
240 | conf_finish_func *ffunc; | - |
241 | char *path = NULL; | - |
242 | int errcode = 0; | - |
243 | CONF_MODULE *md; | - |
244 | | - |
245 | | - |
246 | path = NCONF_get_string(cnf, value, "path"); | - |
247 | if (!path) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
248 | ERR_clear_error(); | - |
249 | path = name; | - |
250 | } never executed: end of block | 0 |
251 | dso = DSO_load(NULL, path, NULL, 0); | - |
252 | if (!dso) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
253 | errcode = CONF_R_ERROR_LOADING_DSO; | - |
254 | goto err; never executed: goto err; | 0 |
255 | } | - |
256 | ifunc = (conf_init_func *)DSO_bind_func(dso, DSO_mod_init_name); | - |
257 | if (!ifunc) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
258 | errcode = CONF_R_MISSING_INIT_FUNCTION; | - |
259 | goto err; never executed: goto err; | 0 |
260 | } | - |
261 | ffunc = (conf_finish_func *)DSO_bind_func(dso, DSO_mod_finish_name); | - |
262 | | - |
263 | md = module_add(dso, name, ifunc, ffunc); | - |
264 | | - |
265 | if (!md)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
266 | goto err; never executed: goto err; | 0 |
267 | | - |
268 | return md; never executed: return md; | 0 |
269 | | - |
270 | err: | - |
271 | if (dso)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
272 | DSO_free(dso); never executed: DSO_free(dso); | 0 |
273 | CONFerror(errcode); | - |
274 | ERR_asprintf_error_data("module=%s, path=%s", name, path); | - |
275 | return NULL; never executed: return ((void *)0) ; | 0 |
276 | } | - |
277 | | - |
278 | | - |
279 | static CONF_MODULE * | - |
280 | module_add(DSO *dso, const char *name, conf_init_func *ifunc, | - |
281 | conf_finish_func *ffunc) | - |
282 | { | - |
283 | CONF_MODULE *tmod = NULL; | - |
284 | | - |
285 | if (name == NULL)TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
286 | return NULL; never executed: return ((void *)0) ; | 0 |
287 | if (supported_modules == NULL)TRUE | evaluated 1 time by 1 test | FALSE | evaluated 1 time by 1 test |
| 1 |
288 | supported_modules = sk_CONF_MODULE_new_null();executed 1 time by 1 test: supported_modules = ((struct stack_st_CONF_MODULE *)sk_new_null()); | 1 |
289 | if (supported_modules == NULL)TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
290 | return NULL; never executed: return ((void *)0) ; | 0 |
291 | tmod = malloc(sizeof(CONF_MODULE)); | - |
292 | if (tmod == NULL)TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
293 | return NULL; never executed: return ((void *)0) ; | 0 |
294 | | - |
295 | tmod->dso = dso; | - |
296 | tmod->name = strdup(name); never executed: __retval = (char *) memcpy (__retval, name , __len); TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
TRUE | never evaluated | FALSE | never evaluated |
| 0-2 |
297 | tmod->init = ifunc; | - |
298 | tmod->finish = ffunc; | - |
299 | tmod->links = 0; | - |
300 | | - |
301 | if (!sk_CONF_MODULE_push(supported_modules, tmod)) {TRUE | never evaluated | FALSE | evaluated 2 times by 1 test |
| 0-2 |
302 | free(tmod); | - |
303 | return NULL; never executed: return ((void *)0) ; | 0 |
304 | } | - |
305 | | - |
306 | return tmod;executed 2 times by 1 test: return tmod; | 2 |
307 | } | - |
308 | | - |
309 | | - |
310 | | - |
311 | | - |
312 | | - |
313 | | - |
314 | static CONF_MODULE * | - |
315 | module_find(char *name) | - |
316 | { | - |
317 | CONF_MODULE *tmod; | - |
318 | int i, nchar; | - |
319 | char *p; | - |
320 | | - |
321 | p = strrchr(name, '.'); | - |
322 | | - |
323 | if (p)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
324 | nchar = p - name; never executed: nchar = p - name; | 0 |
325 | else | - |
326 | nchar = strlen(name); never executed: nchar = strlen(name); | 0 |
327 | | - |
328 | for (i = 0; i < sk_CONF_MODULE_num(supported_modules); i++) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
329 | tmod = sk_CONF_MODULE_value(supported_modules, i); | - |
330 | if (!strncmp(tmod->name, name, nchar)) never executed: __result = (((const unsigned char *) (const char *) ( tmod->name ))[3] - __s2[3]); never executed: end of block never executed: end of block never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]); never executed: end of block never executed: end of block TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
331 | return tmod; never executed: return tmod; | 0 |
332 | } never executed: end of block | 0 |
333 | | - |
334 | return NULL; never executed: return ((void *)0) ; | 0 |
335 | } | - |
336 | | - |
337 | | - |
338 | static int | - |
339 | module_init(CONF_MODULE *pmod, char *name, char *value, const CONF *cnf) | - |
340 | { | - |
341 | int ret = 1; | - |
342 | int init_called = 0; | - |
343 | CONF_IMODULE *imod = NULL; | - |
344 | | - |
345 | | - |
346 | imod = malloc(sizeof(CONF_IMODULE)); | - |
347 | if (!imod)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
348 | goto err; never executed: goto err; | 0 |
349 | | - |
350 | imod->pmod = pmod; | - |
351 | imod->name = name ? strdup(name) : NULL; never executed: __retval = (char *) memcpy (__retval, name , __len); TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
352 | imod->value = value ? strdup(value) : NULL; never executed: __retval = (char *) memcpy (__retval, value , __len); TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
353 | imod->usr_data = NULL; | - |
354 | | - |
355 | if (!imod->name || !imod->value)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
356 | goto memerr; never executed: goto memerr; | 0 |
357 | | - |
358 | | - |
359 | if (pmod->init) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
360 | ret = pmod->init(imod, cnf); | - |
361 | init_called = 1; | - |
362 | | - |
363 | if (ret <= 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
364 | goto err; never executed: goto err; | 0 |
365 | } never executed: end of block | 0 |
366 | | - |
367 | if (initialized_modules == NULL) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
368 | initialized_modules = sk_CONF_IMODULE_new_null(); | - |
369 | if (!initialized_modules) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
370 | CONFerror(ERR_R_MALLOC_FAILURE); | - |
371 | goto err; never executed: goto err; | 0 |
372 | } | - |
373 | } never executed: end of block | 0 |
374 | | - |
375 | if (!sk_CONF_IMODULE_push(initialized_modules, imod)) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
376 | CONFerror(ERR_R_MALLOC_FAILURE); | - |
377 | goto err; never executed: goto err; | 0 |
378 | } | - |
379 | | - |
380 | pmod->links++; | - |
381 | | - |
382 | return ret; never executed: return ret; | 0 |
383 | | - |
384 | err: | - |
385 | | - |
386 | if (pmod->finish && init_called)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
387 | pmod->finish(imod); never executed: pmod->finish(imod); | 0 |
388 | | - |
389 | memerr: code before this statement never executed: memerr: | 0 |
390 | if (imod) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
391 | free(imod->name); | - |
392 | free(imod->value); | - |
393 | free(imod); | - |
394 | } never executed: end of block | 0 |
395 | | - |
396 | return -1; never executed: return -1; | 0 |
397 | } | - |
398 | | - |
399 | | - |
400 | | - |
401 | | - |
402 | | - |
403 | | - |
404 | void | - |
405 | CONF_modules_unload(int all) | - |
406 | { | - |
407 | int i; | - |
408 | CONF_MODULE *md; | - |
409 | | - |
410 | CONF_modules_finish(); | - |
411 | | - |
412 | | - |
413 | for (i = sk_CONF_MODULE_num(supported_modules) - 1; i >= 0; i--) {TRUE | never evaluated | FALSE | evaluated 211 times by 1 test |
| 0-211 |
414 | md = sk_CONF_MODULE_value(supported_modules, i); | - |
415 | | - |
416 | if (((md->links > 0) || !md->dso) && !all)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
417 | continue; never executed: continue; | 0 |
418 | | - |
419 | (void)sk_CONF_MODULE_delete(supported_modules, i); | - |
420 | module_free(md); | - |
421 | } never executed: end of block | 0 |
422 | if (sk_CONF_MODULE_num(supported_modules) == 0) {TRUE | never evaluated | FALSE | evaluated 211 times by 1 test |
| 0-211 |
423 | sk_CONF_MODULE_free(supported_modules); | - |
424 | supported_modules = NULL; | - |
425 | } never executed: end of block | 0 |
426 | }executed 211 times by 1 test: end of block | 211 |
427 | | - |
428 | | - |
429 | static void | - |
430 | module_free(CONF_MODULE *md) | - |
431 | { | - |
432 | if (md->dso)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
433 | DSO_free(md->dso); never executed: DSO_free(md->dso); | 0 |
434 | free(md->name); | - |
435 | free(md); | - |
436 | } never executed: end of block | 0 |
437 | | - |
438 | | - |
439 | | - |
440 | void | - |
441 | CONF_modules_finish(void) | - |
442 | { | - |
443 | CONF_IMODULE *imod; | - |
444 | | - |
445 | while (sk_CONF_IMODULE_num(initialized_modules) > 0) {TRUE | never evaluated | FALSE | evaluated 211 times by 1 test |
| 0-211 |
446 | imod = sk_CONF_IMODULE_pop(initialized_modules); | - |
447 | module_finish(imod); | - |
448 | } never executed: end of block | 0 |
449 | sk_CONF_IMODULE_free(initialized_modules); | - |
450 | initialized_modules = NULL; | - |
451 | }executed 211 times by 1 test: end of block | 211 |
452 | | - |
453 | | - |
454 | | - |
455 | static void | - |
456 | module_finish(CONF_IMODULE *imod) | - |
457 | { | - |
458 | if (imod->pmod->finish)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
459 | imod->pmod->finish(imod); never executed: imod->pmod->finish(imod); | 0 |
460 | imod->pmod->links--; | - |
461 | free(imod->name); | - |
462 | free(imod->value); | - |
463 | free(imod); | - |
464 | } never executed: end of block | 0 |
465 | | - |
466 | | - |
467 | | - |
468 | int | - |
469 | CONF_module_add(const char *name, conf_init_func *ifunc, | - |
470 | conf_finish_func *ffunc) | - |
471 | { | - |
472 | if (module_add(NULL, name, ifunc, ffunc))TRUE | evaluated 2 times by 1 test | FALSE | never evaluated |
| 0-2 |
473 | return 1;executed 2 times by 1 test: return 1; | 2 |
474 | else | - |
475 | return 0; never executed: return 0; | 0 |
476 | } | - |
477 | | - |
478 | void | - |
479 | CONF_modules_free(void) | - |
480 | { | - |
481 | CONF_modules_finish(); | - |
482 | CONF_modules_unload(1); | - |
483 | } never executed: end of block | 0 |
484 | | - |
485 | | - |
486 | | - |
487 | const char * | - |
488 | CONF_imodule_get_name(const CONF_IMODULE *md) | - |
489 | { | - |
490 | return md->name; never executed: return md->name; | 0 |
491 | } | - |
492 | | - |
493 | const char * | - |
494 | CONF_imodule_get_value(const CONF_IMODULE *md) | - |
495 | { | - |
496 | return md->value; never executed: return md->value; | 0 |
497 | } | - |
498 | | - |
499 | void * | - |
500 | CONF_imodule_get_usr_data(const CONF_IMODULE *md) | - |
501 | { | - |
502 | return md->usr_data; never executed: return md->usr_data; | 0 |
503 | } | - |
504 | | - |
505 | void | - |
506 | CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data) | - |
507 | { | - |
508 | md->usr_data = usr_data; | - |
509 | } never executed: end of block | 0 |
510 | | - |
511 | CONF_MODULE * | - |
512 | CONF_imodule_get_module(const CONF_IMODULE *md) | - |
513 | { | - |
514 | return md->pmod; never executed: return md->pmod; | 0 |
515 | } | - |
516 | | - |
517 | unsigned long | - |
518 | CONF_imodule_get_flags(const CONF_IMODULE *md) | - |
519 | { | - |
520 | return md->flags; never executed: return md->flags; | 0 |
521 | } | - |
522 | | - |
523 | void | - |
524 | CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags) | - |
525 | { | - |
526 | md->flags = flags; | - |
527 | } never executed: end of block | 0 |
528 | | - |
529 | void * | - |
530 | CONF_module_get_usr_data(CONF_MODULE *pmod) | - |
531 | { | - |
532 | return pmod->usr_data; never executed: return pmod->usr_data; | 0 |
533 | } | - |
534 | | - |
535 | void | - |
536 | CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data) | - |
537 | { | - |
538 | pmod->usr_data = usr_data; | - |
539 | } never executed: end of block | 0 |
540 | | - |
541 | | - |
542 | | - |
543 | char * | - |
544 | CONF_get1_default_config_file(void) | - |
545 | { | - |
546 | char *file = NULL; | - |
547 | | - |
548 | if (asprintf(&file, "%s/openssl.cnf",TRUE | never evaluated | FALSE | never evaluated |
| 0 |
549 | X509_get_default_cert_area()) == -1)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
550 | return (NULL); never executed: return ( ((void *)0) ); | 0 |
551 | return file; never executed: return file; | 0 |
552 | } | - |
553 | | - |
554 | | - |
555 | | - |
556 | | - |
557 | | - |
558 | | - |
559 | | - |
560 | int | - |
561 | CONF_parse_list(const char *list_, int sep, int nospc, | - |
562 | int (*list_cb)(const char *elem, int len, void *usr), void *arg) | - |
563 | { | - |
564 | int ret; | - |
565 | const char *lstart, *tmpend, *p; | - |
566 | | - |
567 | if (list_ == NULL) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
568 | CONFerror(CONF_R_LIST_CANNOT_BE_NULL); | - |
569 | return 0; never executed: return 0; | 0 |
570 | } | - |
571 | | - |
572 | lstart = list_; | - |
573 | for (;;) { | - |
574 | if (nospc) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
575 | while (*lstart && isspace((unsigned char)*lstart))TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
576 | lstart++; never executed: lstart++; | 0 |
577 | } never executed: end of block | 0 |
578 | p = strchr(lstart, sep);TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
579 | if (p == lstart || !*lstart)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
580 | ret = list_cb(NULL, 0, arg); never executed: ret = list_cb( ((void *)0) , 0, arg); | 0 |
581 | else { | - |
582 | if (p)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
583 | tmpend = p - 1; never executed: tmpend = p - 1; | 0 |
584 | else | - |
585 | tmpend = lstart + strlen(lstart) - 1; never executed: tmpend = lstart + strlen(lstart) - 1; | 0 |
586 | if (nospc) {TRUE | never evaluated | FALSE | never evaluated |
| 0 |
587 | while (isspace((unsigned char)*tmpend))TRUE | never evaluated | FALSE | never evaluated |
| 0 |
588 | tmpend--; never executed: tmpend--; | 0 |
589 | } never executed: end of block | 0 |
590 | ret = list_cb(lstart, tmpend - lstart + 1, arg); | - |
591 | } never executed: end of block | 0 |
592 | if (ret <= 0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
593 | return ret; never executed: return ret; | 0 |
594 | if (p == NULL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
595 | return 1; never executed: return 1; | 0 |
596 | lstart = p + 1; | - |
597 | } never executed: end of block | 0 |
598 | } never executed: end of block | 0 |
| | |