]> git.sur5r.net Git - openldap/commitdiff
Further fix for ITS#4872
authorQuanah Gibson-Mount <quanah@openldap.org>
Sun, 1 Apr 2007 23:30:02 +0000 (23:30 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Sun, 1 Apr 2007 23:30:02 +0000 (23:30 +0000)
servers/slapd/daemon.c

index 15c8fe7209878f7625cd5fc96a0712b91501e841..a5c6d6cb69c2eb371e2906187c1d77cbd498eab6 100644 (file)
@@ -2124,8 +2124,14 @@ slapd_daemon_task(
                ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );
 
                if ( rtask && cat.tv_sec ) {
-                       time_t diff = difftime( cat.tv_sec, now );
-                       if ( diff == 0 ) diff = tdelta;
+                       /* NOTE: diff __should__ always be >= 0,
+                        * AFAI understand; however (ITS#4872),
+                        * time_t might be unsigned in some systems,
+                        * while difftime() returns a double */
+                       double diff = difftime( cat.tv_sec, now );
+                       if ( diff <= 0 ) {
+                               diff = tdelta;
+                       }
                        if ( tvp == NULL || diff < tv.tv_sec ) {
                                tv.tv_sec = diff;
                                tv.tv_usec = 0;