Don't ignore config_name parameter passed to OPENSSL_config(). Use
authorDr. Stephen Henson <steve@openssl.org>
Mon, 9 Apr 2007 11:45:54 +0000 (11:45 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 9 Apr 2007 11:45:54 +0000 (11:45 +0000)
"openssl_conf" in config file if config_name variable is missing.

crypto/conf/conf.h
crypto/conf/conf_mod.c
crypto/conf/conf_sap.c

index 9909374..a8ac256 100644 (file)
@@ -115,6 +115,7 @@ typedef void conf_finish_func(CONF_IMODULE *md);
 #define CONF_MFLAGS_SILENT             0x4
 #define CONF_MFLAGS_NO_DSO             0x8
 #define CONF_MFLAGS_IGNORE_MISSING_FILE        0x10
+#define CONF_MFLAGS_DEFAULT_SECTION    0x20
 
 int CONF_set_default_method(CONF_METHOD *meth);
 void CONF_set_nconf(CONF *conf,LHASH *hash);
index 7c9b42f..e40cc50 100644 (file)
@@ -126,17 +126,18 @@ int CONF_modules_load(const CONF *cnf, const char *appname,
        {
        STACK_OF(CONF_VALUE) *values;
        CONF_VALUE *vl;
-       char *vsection;
+       char *vsection = NULL;
 
        int ret, i;
 
        if (!cnf)
                return 1;
 
-       if (appname == NULL)
-               appname = "openssl_conf";
+       if (appname)
+               vsection = NCONF_get_string(cnf, NULL, appname);
 
-       vsection = NCONF_get_string(cnf, NULL, appname); 
+       if (!appname || (!vsection && (flags & CONF_MFLAGS_DEFAULT_SECTION)))
+               vsection = NCONF_get_string(cnf, NULL, "openssl_conf");
 
        if (!vsection)
                {
index e15c2e5..9c53bac 100644 (file)
@@ -88,8 +88,8 @@ void OPENSSL_config(const char *config_name)
 
 
        ERR_clear_error();
-       if (CONF_modules_load_file(NULL, NULL,
-                                       CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0)
+       if (CONF_modules_load_file(NULL, config_name,
+       CONF_MFLAGS_DEFAULT_SECTION|CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0)
                {
                BIO *bio_err;
                ERR_load_crypto_strings();