From 1429b49d1e314a1c52797664e3a3191fae846f22 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Mon, 12 Mar 2007 21:04:01 +0000 Subject: [PATCH] apparently, time_t is unsigned in some systems --- libraries/libldap/result.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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", -- 2.39.5