From 65e409817e63b340e540d5c6fef36bab7c9468fe Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Sun, 4 Apr 2004 15:40:14 +0000 Subject: [PATCH] Fix prev commit, days at month boundaries --- servers/slapd/overlays/ppolicy.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/servers/slapd/overlays/ppolicy.c b/servers/slapd/overlays/ppolicy.c index f176cb2086..4182c6bf11 100644 --- a/servers/slapd/overlays/ppolicy.c +++ b/servers/slapd/overlays/ppolicy.c @@ -222,7 +222,15 @@ parse_time( char *atm ) tmg.tm_mday -= tml.tm_mday; tmg.tm_hour -= tml.tm_hour; - if ( tmg.tm_mday ) tmg.tm_hour += tmg.tm_mday > 0 ? 24 : -24; + if ( tmg.tm_mday ) { + /* The difference should only be +/- 1 day, but may + * fall outside this range at the beginning/end of a month + */ + if ( tmg.tm_mday > 1 ) tmg.tm_mday = -1; + else if ( tmg.tm_mday < -1 ) tmg.tm_mday = 1; + + tmg.tm_hour += tmg.tm_mday > 0 ? 24 : -24; + } if ( tmg.tm_hour ) t -= tmg.tm_hour * 3600; tmg.tm_min -= tml.tm_min; if ( tmg.tm_min ) t -= tmg.tm_min * 60; -- 2.39.5