From 38798fee5b539d6153a8a7856152959412ee59b5 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 24 Aug 2016 20:10:36 +0200 Subject: [PATCH] core: Adjust for TOFU_STATS change in gnupg 2.1.16. * src/gpgme.h.in (_gpgme_tofu_info): Change 'firstseen' and 'lastseen' to a timestamp value. * src/verify.c (parse_tofu_stats): Do not cap these values at UINT_MAX. -- Using an unsigned long here is okay: We will never get an error and even on machines where unsigned long is 32 bit (e.g. Windows64) this allows us to operate until 2106. By then Windows will be a footnote in history or Windows128 has changed that type to something larger than 32 bit ;-) Signed-off-by: Werner Koch --- src/gpgme.h.in | 8 ++++---- src/verify.c | 6 +----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/gpgme.h.in b/src/gpgme.h.in index c07cac8d..79a7b9fd 100644 --- a/src/gpgme.h.in +++ b/src/gpgme.h.in @@ -648,10 +648,10 @@ struct _gpgme_tofu_info /* Number of encryptions done with this binding. Capped at USHRT_MAX. */ unsigned short encrcount; - /* Number of seconds since the first and the most recently seen - * message was verified. */ - unsigned int firstseen; - unsigned int lastseen; + /* Number of seconds since Epoch when the first and the most + * recently seen message were verified. 0 means unknown. */ + unsigned long firstseen; + unsigned long lastseen; /* If non-NULL a human readable string summarizing the TOFU data. */ char *description; diff --git a/src/verify.c b/src/verify.c index e573b016..92eb3334 100644 --- a/src/verify.c +++ b/src/verify.c @@ -818,20 +818,16 @@ parse_tofu_stats (gpgme_signature_t sig, char *args) if (nfields == 4) return 0; /* No more optional fields. */ - /* Parse first and last seen (none or both are required). */ + /* Parse first and last seen timestamps (none or both are required). */ if (nfields < 6) return trace_gpg_error (GPG_ERR_INV_ENGINE); /* "tm2" missing. */ err = _gpgme_strtoul_field (field[4], &uval); if (err) return trace_gpg_error (GPG_ERR_INV_ENGINE); - if (uval > UINT_MAX) - uval = UINT_MAX; ti->firstseen = uval; err = _gpgme_strtoul_field (field[5], &uval); if (err) return trace_gpg_error (GPG_ERR_INV_ENGINE); - if (uval > UINT_MAX) - uval = UINT_MAX; ti->lastseen = uval; return 0;