From: Pierangelo Masarati Date: Mon, 12 Mar 2007 21:04:01 +0000 (+0000) Subject: apparently, time_t is unsigned in some systems X-Git-Tag: OPENLDAP_REL_ENG_2_4_MP~618 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1429b49d1e314a1c52797664e3a3191fae846f22;p=openldap apparently, time_t is unsigned in some systems --- diff --git a/libraries/libldap/result.c b/libraries/libldap/result.c index 994c52bad7..8983eea94e 100644 --- a/libraries/libldap/result.c +++ b/libraries/libldap/result.c @@ -423,13 +423,18 @@ wait4msg( } if ( rc == LDAP_MSG_X_KEEP_LOOKING && tvp != NULL ) { + time_t delta_time; + tmp_time = time( NULL ); - tv0.tv_sec -= ( tmp_time - start_time ); - if ( tv0.tv_sec <= 0 ) { + delta_time = tmp_time - start_time; + + /* do not assume time_t is signed */ + if ( tv0.tv_sec <= delta_time ) { rc = 0; /* timed out */ ld->ld_errno = LDAP_TIMEOUT; break; } + tv0.tv_sec -= delta_time; tv.tv_sec = tv0.tv_sec; Debug( LDAP_DEBUG_TRACE, "wait4msg ld %p %ld secs to go\n",