summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2012-12-02 19:05:44 +0100
committerJakub Hrozek <jhrozek@redhat.com>2013-01-29 11:41:39 +0100
commit6732ee28efb96f01ae71e71b8464129193e7a4a4 (patch)
tree46d05d3f4ca261fc812bf1670206b79ba83f6449
parent14cb3653d16db8b68b60e908151ce7ce75f7c9e0 (diff)
downloadsssd-6732ee28efb96f01ae71e71b8464129193e7a4a4.tar.gz
sssd-6732ee28efb96f01ae71e71b8464129193e7a4a4.tar.xz
sssd-6732ee28efb96f01ae71e71b8464129193e7a4a4.zip
NSS: Fix netgroup midpoint cache refresh
https://fedorahosted.org/sssd/ticket/1683 The result of the percent calculation was always 0 as it used plain ints. The patch switches to using explicit floats to avoid reintroducing the bug again even with brackets.
-rw-r--r--src/responder/common/responder_cmd.c2
-rw-r--r--src/responder/nss/nsssrv_netgroup.c2
-rw-r--r--src/responder/nss/nsssrv_services.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/responder/common/responder_cmd.c b/src/responder/common/responder_cmd.c
index 16f38eafd..8dd82d10b 100644
--- a/src/responder/common/responder_cmd.c
+++ b/src/responder/common/responder_cmd.c
@@ -257,7 +257,7 @@ sss_cmd_check_cache(struct ldb_message *msg,
if(cache_refresh_percent) {
midpoint_refresh = lastUpdate +
- (cache_expire - lastUpdate)*cache_refresh_percent/100;
+ (cache_expire - lastUpdate)*cache_refresh_percent/100.0;
if (midpoint_refresh - lastUpdate < 10) {
/* If the percentage results in an expiration
* less than ten seconds after the lastUpdate time,
diff --git a/src/responder/nss/nsssrv_netgroup.c b/src/responder/nss/nsssrv_netgroup.c
index 151ded239..a5fc2cdb0 100644
--- a/src/responder/nss/nsssrv_netgroup.c
+++ b/src/responder/nss/nsssrv_netgroup.c
@@ -505,7 +505,7 @@ static errno_t lookup_netgr_step(struct setent_step_ctx *step_ctx)
netgr->found = true;
if (step_ctx->nctx->cache_refresh_percent) {
lifetime = dom->netgroup_timeout *
- (step_ctx->nctx->cache_refresh_percent / 100);
+ (step_ctx->nctx->cache_refresh_percent / 100.0);
} else {
lifetime = dom->netgroup_timeout;
}
diff --git a/src/responder/nss/nsssrv_services.c b/src/responder/nss/nsssrv_services.c
index cf2a449b2..0b9325ce5 100644
--- a/src/responder/nss/nsssrv_services.c
+++ b/src/responder/nss/nsssrv_services.c
@@ -325,7 +325,7 @@ getserv_send(TALLOC_CTX *mem_ctx,
midpoint_refresh = 0;
if(nctx->cache_refresh_percent) {
midpoint_refresh = lastUpdate +
- (cacheExpire - lastUpdate)*nctx->cache_refresh_percent/100;
+ (cacheExpire - lastUpdate)*nctx->cache_refresh_percent/100.0;
if (midpoint_refresh - lastUpdate < 10) {
/* If the percentage results in an expiration
* less than ten seconds after the lastUpdate time,