From f9a1d517566f26af5448d2faafad4ae0a1ec1534 Mon Sep 17 00:00:00 2001 From: Karl-Heinz Zimmer Date: Sun, 29 Sep 2002 21:14:16 +0000 Subject: [PATCH] Applying Ingo's patch: Makes signatureCertificateDaysLeftToExpiry() and receiverCertificateDaysLeftToExpiry() handle the case that a certificate _never_ expires correctly. --- gpgmeplug/gpgmeplug.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/gpgmeplug/gpgmeplug.c b/gpgmeplug/gpgmeplug.c index 6e17c55..03d3dbe 100644 --- a/gpgmeplug/gpgmeplug.c +++ b/gpgmeplug/gpgmeplug.c @@ -557,13 +557,15 @@ int signatureCertificateDaysLeftToExpiry( const char* certificate ) if ( GPGME_No_Error == err ) { time_t expire_time = gpgme_key_get_ulong_attr( rKey, GPGME_ATTR_EXPIRE, NULL, 0 ); - time_t cur_time = time (NULL); - if( cur_time > expire_time ) { - daysLeft = days_from_seconds(cur_time - expire_time); - daysLeft *= -1; + if ( 0 != expire_time ) { + time_t cur_time = time (NULL); + if( cur_time > expire_time ) { + daysLeft = days_from_seconds(cur_time - expire_time); + daysLeft *= -1; + } + else + daysLeft = days_from_seconds(expire_time - cur_time); } - else - daysLeft = days_from_seconds(expire_time - cur_time); gpgme_key_release( rKey ); } } @@ -847,13 +849,15 @@ int receiverCertificateDaysLeftToExpiry( const char* certificate ) if ( GPGME_No_Error == err ) { time_t expire_time = gpgme_key_get_ulong_attr( rKey,GPGME_ATTR_EXPIRE, NULL, 0 ); - time_t cur_time = time (NULL); - if( cur_time > expire_time ) { - daysLeft = days_from_seconds(cur_time - expire_time); - daysLeft *= -1; + if ( 0 != expire_time ) { + time_t cur_time = time (NULL); + if( cur_time > expire_time ) { + daysLeft = days_from_seconds(cur_time - expire_time); + daysLeft *= -1; + } + else + daysLeft = days_from_seconds(expire_time - cur_time); } - else - daysLeft = days_from_seconds(expire_time - cur_time); gpgme_key_release( rKey ); } } -- 2.26.2