summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ldap/servers/slapd/main.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/ldap/servers/slapd/main.c b/ldap/servers/slapd/main.c
index d118a04b..2ad53b70 100644
--- a/ldap/servers/slapd/main.c
+++ b/ldap/servers/slapd/main.c
@@ -266,23 +266,29 @@ fix_ownership()
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
- if (slapdFrontendConfig->localuser != NULL) {
- if (slapdFrontendConfig->localuserinfo == NULL) {
- pw = getpwnam( slapdFrontendConfig->localuser );
- if ( NULL == pw ) {
- LDAPDebug(LDAP_DEBUG_ANY,
- "Unable to find user %s in system account database, "
- "errno %d (%s)\n",
- slapdFrontendConfig->localuser, errno, strerror(errno));
- return;
- }
- slapdFrontendConfig->localuserinfo =
- (struct passwd *)slapi_ch_malloc(sizeof(struct passwd));
- memcpy(slapdFrontendConfig->localuserinfo, pw, sizeof(struct passwd));
+ if (slapdFrontendConfig->localuser == NULL) {
+ LDAPDebug(LDAP_DEBUG_ANY,
+ "Local user missing from frontend configuration\n",
+ 0, 0, 0);
+ return;
+ }
+
+ if (slapdFrontendConfig->localuserinfo == NULL) {
+ pw = getpwnam( slapdFrontendConfig->localuser );
+ if ( NULL == pw ) {
+ LDAPDebug(LDAP_DEBUG_ANY,
+ "Unable to find user %s in system account database, "
+ "errno %d (%s)\n",
+ slapdFrontendConfig->localuser, errno, strerror(errno));
+ return;
}
- pw = slapdFrontendConfig->localuserinfo;
+ slapdFrontendConfig->localuserinfo =
+ (struct passwd *)slapi_ch_malloc(sizeof(struct passwd));
+ memcpy(slapdFrontendConfig->localuserinfo, pw, sizeof(struct passwd));
}
+ pw = slapdFrontendConfig->localuserinfo;
+
/* config directory needs to be owned by the local user */
if (slapdFrontendConfig->configdir) {
chown_dir_files(slapdFrontendConfig->configdir, pw, PR_FALSE);