summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/conf/conf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/conf/conf.c')
-rw-r--r--src/lib/libcrypto/conf/conf.c32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/lib/libcrypto/conf/conf.c b/src/lib/libcrypto/conf/conf.c
index 7d8b89168a..3031fa3b44 100644
--- a/src/lib/libcrypto/conf/conf.c
+++ b/src/lib/libcrypto/conf/conf.c
@@ -86,28 +86,25 @@ const char *CONF_version="CONF" OPENSSL_VERSION_PTEXT;
86LHASH *CONF_load(LHASH *h, const char *file, long *line) 86LHASH *CONF_load(LHASH *h, const char *file, long *line)
87 { 87 {
88 LHASH *ltmp; 88 LHASH *ltmp;
89 FILE *in=NULL; 89 BIO *in=NULL;
90 90
91#ifdef VMS 91#ifdef VMS
92 in=fopen(file,"r"); 92 in=BIO_new_file(file, "r");
93#else 93#else
94 in=fopen(file,"rb"); 94 in=BIO_new_file(file, "rb");
95#endif 95#endif
96 if (in == NULL) 96 if (in == NULL)
97 { 97 {
98 SYSerr(SYS_F_FOPEN,get_last_sys_error());
99 ERR_set_error_data(BUF_strdup(file),
100 ERR_TXT_MALLOCED|ERR_TXT_STRING);
101 CONFerr(CONF_F_CONF_LOAD,ERR_R_SYS_LIB); 98 CONFerr(CONF_F_CONF_LOAD,ERR_R_SYS_LIB);
102 return NULL; 99 return NULL;
103 } 100 }
104 101
105 ltmp = CONF_load_fp(h, in, line); 102 ltmp = CONF_load_bio(h, in, line);
106 fclose(in); 103 BIO_free(in);
107 104
108 return ltmp; 105 return ltmp;
109} 106}
110 107#ifndef NO_FP_API
111LHASH *CONF_load_fp(LHASH *h, FILE *in, long *line) 108LHASH *CONF_load_fp(LHASH *h, FILE *in, long *line)
112{ 109{
113 BIO *btmp; 110 BIO *btmp;
@@ -120,6 +117,7 @@ LHASH *CONF_load_fp(LHASH *h, FILE *in, long *line)
120 BIO_free(btmp); 117 BIO_free(btmp);
121 return ltmp; 118 return ltmp;
122} 119}
120#endif
123 121
124LHASH *CONF_load_bio(LHASH *h, BIO *in, long *line) 122LHASH *CONF_load_bio(LHASH *h, BIO *in, long *line)
125 { 123 {
@@ -338,7 +336,7 @@ again:
338 ERR_R_MALLOC_FAILURE); 336 ERR_R_MALLOC_FAILURE);
339 goto err; 337 goto err;
340 } 338 }
341 vv=(CONF_VALUE *)lh_insert(ret,(char *)v); 339 vv=(CONF_VALUE *)lh_insert(ret,v);
342 if (vv != NULL) 340 if (vv != NULL)
343 { 341 {
344 sk_CONF_VALUE_delete_ptr(ts,vv); 342 sk_CONF_VALUE_delete_ptr(ts,vv);
@@ -380,7 +378,7 @@ char *CONF_get_string(LHASH *conf, char *section, char *name)
380 { 378 {
381 vv.name=name; 379 vv.name=name;
382 vv.section=section; 380 vv.section=section;
383 v=(CONF_VALUE *)lh_retrieve(conf,(char *)&vv); 381 v=(CONF_VALUE *)lh_retrieve(conf,&vv);
384 if (v != NULL) return(v->value); 382 if (v != NULL) return(v->value);
385 if (strcmp(section,"ENV") == 0) 383 if (strcmp(section,"ENV") == 0)
386 { 384 {
@@ -390,7 +388,7 @@ char *CONF_get_string(LHASH *conf, char *section, char *name)
390 } 388 }
391 vv.section="default"; 389 vv.section="default";
392 vv.name=name; 390 vv.name=name;
393 v=(CONF_VALUE *)lh_retrieve(conf,(char *)&vv); 391 v=(CONF_VALUE *)lh_retrieve(conf,&vv);
394 if (v != NULL) 392 if (v != NULL)
395 return(v->value); 393 return(v->value);
396 else 394 else
@@ -407,7 +405,7 @@ static CONF_VALUE *get_section(LHASH *conf, char *section)
407 if ((conf == NULL) || (section == NULL)) return(NULL); 405 if ((conf == NULL) || (section == NULL)) return(NULL);
408 vv.name=NULL; 406 vv.name=NULL;
409 vv.section=section; 407 vv.section=section;
410 v=(CONF_VALUE *)lh_retrieve(conf,(char *)&vv); 408 v=(CONF_VALUE *)lh_retrieve(conf,&vv);
411 return(v); 409 return(v);
412 } 410 }
413 411
@@ -445,12 +443,12 @@ void CONF_free(LHASH *conf)
445 443
446 conf->down_load=0; /* evil thing to make sure the 'Free()' 444 conf->down_load=0; /* evil thing to make sure the 'Free()'
447 * works as expected */ 445 * works as expected */
448 lh_doall_arg(conf,(void (*)())value_free_hash,(char *)conf); 446 lh_doall_arg(conf,(void (*)())value_free_hash,conf);
449 447
450 /* We now have only 'section' entries in the hash table. 448 /* We now have only 'section' entries in the hash table.
451 * Due to problems with */ 449 * Due to problems with */
452 450
453 lh_doall_arg(conf,(void (*)())value_free_stack,(char *)conf); 451 lh_doall_arg(conf,(void (*)())value_free_stack,conf);
454 lh_free(conf); 452 lh_free(conf);
455 } 453 }
456 454
@@ -458,7 +456,7 @@ static void value_free_hash(CONF_VALUE *a, LHASH *conf)
458 { 456 {
459 if (a->name != NULL) 457 if (a->name != NULL)
460 { 458 {
461 a=(CONF_VALUE *)lh_delete(conf,(char *)a); 459 a=(CONF_VALUE *)lh_delete(conf,a);
462 } 460 }
463 } 461 }
464 462
@@ -710,7 +708,7 @@ static CONF_VALUE *new_section(LHASH *conf, char *section)
710 v->name=NULL; 708 v->name=NULL;
711 v->value=(char *)sk; 709 v->value=(char *)sk;
712 710
713 vv=(CONF_VALUE *)lh_insert(conf,(char *)v); 711 vv=(CONF_VALUE *)lh_insert(conf,v);
714 if (vv != NULL) 712 if (vv != NULL)
715 { 713 {
716#if !defined(NO_STDIO) && !defined(WIN16) 714#if !defined(NO_STDIO) && !defined(WIN16)