From: Howard Chu Date: Sun, 4 Apr 2004 15:40:14 +0000 (+0000) Subject: Fix prev commit, days at month boundaries X-Git-Tag: OPENLDAP_REL_ENG_2_2_BP~156 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=65e409817e63b340e540d5c6fef36bab7c9468fe;p=openldap Fix prev commit, days at month boundaries --- 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;