From e90c9be30bf6ee88a2cdcb1ff0e738326b720953 Mon Sep 17 00:00:00 2001 From: Thierry Bordaz Date: Fri, 31 Mar 2017 10:48:10 +0200 Subject: [PATCH] Ticket 49198 - At backend startup, autotune access a non initialized dblayer struct Bug Description: At startup of the dblayer, autotune accesses 'li->li_dblayer_private->dblayer_home_directory'. That field is not yet initialized as it will be during 'dblayer_start'. Returning a NULL value trigger an unexpected error message WARN - dblayer_get_home_dir - Db home directory is not set. Possibly nsslapd-directory (optionally nsslapd-db-home-directory) is missing in the config file. But can potentially be a problem for dblayer_get_home_dir caller Fix Description: If the home_dir is NULL and it li->li_directory is set, then return this value https://pagure.io/389-ds-base/issue/49198 Reviewed by: ? Platforms tested: F23 Flag Day: no Doc impact: no --- ldap/servers/slapd/back-ldbm/dblayer.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c index ff97aa4..4b95597 100644 --- a/ldap/servers/slapd/back-ldbm/dblayer.c +++ b/ldap/servers/slapd/back-ldbm/dblayer.c @@ -481,9 +481,13 @@ dblayer_get_home_dir(struct ldbminfo *li, int *dbhome) } if (NULL == home_dir) { - slapi_log_err(SLAPI_LOG_WARNING, "dblayer_get_home_dir", "Db home directory is not set. " - "Possibly %s (optionally %s) is missing in the config file.\n", - CONFIG_DIRECTORY, CONFIG_DB_HOME_DIRECTORY); + if (li->li_directory) { + home_dir = li->li_directory; + } else { + slapi_log_err(SLAPI_LOG_WARNING, "dblayer_get_home_dir", "Db home directory is not set. " + "Possibly %s (optionally %s) is missing in the config file.\n", + CONFIG_DIRECTORY, CONFIG_DB_HOME_DIRECTORY); + } } return home_dir; } -- 2.5.0