Blob Blame History Raw
From b4195db089bc481161b37cd129d0876571f633b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fidencio@redhat.com>
Date: Tue, 29 Aug 2017 19:08:53 +0200
Subject: [PATCH 76/93] CONFDB: Set a default value for
 subdomain_refresh_interval in case an invalid value is set
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The code as it was seemed wrong as when an invalid value as set we
neither error out nor set a default valid value there.

Signed-off-by: Fabiano FidĂȘncio <fidencio@redhat.com>

Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
---
 src/confdb/confdb.c | 13 +++++++++++--
 src/confdb/confdb.h |  1 +
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/confdb/confdb.c b/src/confdb/confdb.c
index 286dbb24377c6d0fdf2c2d070da04918c591ce05..fd73abe5b79fcb1ba38f7a9d1db86bc3206bb481 100644
--- a/src/confdb/confdb.c
+++ b/src/confdb/confdb.c
@@ -1419,11 +1419,20 @@ static int confdb_get_domain_internal(struct confdb_ctx *cdb,
     }
 
     ret = get_entry_as_uint32(res->msgs[0], &domain->subdomain_refresh_interval,
-                              CONFDB_DOMAIN_SUBDOMAIN_REFRESH, 14400);
-    if (ret != EOK || domain->subdomain_refresh_interval == 0) {
+                              CONFDB_DOMAIN_SUBDOMAIN_REFRESH,
+                              CONFDB_DOMAIN_SUBDOMAIN_REFRESH_DEFAULT_VALUE);
+    if (ret != EOK) {
         DEBUG(SSSDBG_FATAL_FAILURE,
               "Invalid value for [%s]\n", CONFDB_DOMAIN_SUBDOMAIN_REFRESH);
         goto done;
+    } else if (domain->subdomain_refresh_interval == 0) {
+        DEBUG(SSSDBG_MINOR_FAILURE,
+              "Invalid value for [%s]. Setting up the default value: %d\n",
+              CONFDB_DOMAIN_SUBDOMAIN_REFRESH,
+              CONFDB_DOMAIN_SUBDOMAIN_REFRESH_DEFAULT_VALUE);
+
+        domain->subdomain_refresh_interval =
+            CONFDB_DOMAIN_SUBDOMAIN_REFRESH_DEFAULT_VALUE;
     }
 
     ret = init_cached_auth_timeout(cdb, res->msgs[0],
diff --git a/src/confdb/confdb.h b/src/confdb/confdb.h
index da725fb667afea6747d22d1d3a4315fb7a7bace2..4abc95b8183f1b430f770b55e8af0e43f65889a3 100644
--- a/src/confdb/confdb.h
+++ b/src/confdb/confdb.h
@@ -207,6 +207,7 @@
 #define CONFDB_DOMAIN_DEFAULT_SUBDOMAIN_HOMEDIR "/home/%d/%u"
 #define CONFDB_DOMAIN_IGNORE_GROUP_MEMBERS "ignore_group_members"
 #define CONFDB_DOMAIN_SUBDOMAIN_REFRESH "subdomain_refresh_interval"
+#define CONFDB_DOMAIN_SUBDOMAIN_REFRESH_DEFAULT_VALUE 14400
 
 #define CONFDB_DOMAIN_USER_CACHE_TIMEOUT "entry_cache_user_timeout"
 #define CONFDB_DOMAIN_GROUP_CACHE_TIMEOUT "entry_cache_group_timeout"
-- 
2.14.1