mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
Better support unsigned time_t
This commit is contained in:
parent
dc5150db78
commit
2e82b095cd
8 changed files with 85 additions and 26 deletions
|
@ -1,3 +1,10 @@
|
|||
2010-10-27 Werner Koch <wk@g10code.com>
|
||||
|
||||
* keygen.c (ask_expire_interval): Do not print the y2038 if we
|
||||
have an unsigned time_t.
|
||||
* keyid.c (IS_INVALID_TIME_T): New.
|
||||
(mk_datestr): Use it to detect the y2038 problem.
|
||||
|
||||
2010-10-26 Werner Koch <wk@g10code.com>
|
||||
|
||||
* keyedit.c (change_passphrase): Handle the passwd_nonce.
|
||||
|
|
|
@ -1854,7 +1854,7 @@ ask_expire_interval(int object,const char *def_expire)
|
|||
? _("Key expires at %s\n")
|
||||
: _("Signature expires at %s\n"),
|
||||
asctimestamp((ulong)(curtime + interval) ) );
|
||||
#if SIZEOF_TIME_T <= 4
|
||||
#if SIZEOF_TIME_T <= 4 && !defined (HAVE_UNSIGNED_TIME_T)
|
||||
if ( (time_t)((ulong)(curtime+interval)) < 0 )
|
||||
tty_printf (_("Your system can't display dates beyond 2038.\n"
|
||||
"However, it will be correctly handled up to"
|
||||
|
|
15
g10/keyid.c
15
g10/keyid.c
|
@ -37,6 +37,13 @@
|
|||
|
||||
#define KEYID_STR_SIZE 19
|
||||
|
||||
#ifdef HAVE_UNSIGNED_TIME_T
|
||||
# define IS_INVALID_TIME_T(a) ((a) == (time_t)(-1))
|
||||
#else
|
||||
/* Error or 32 bit time_t and value after 2038-01-19. */
|
||||
# define IS_INVALID_TIME_T(a) ((a) < 0)
|
||||
#endif
|
||||
|
||||
|
||||
/* Return a letter describing the public key algorithms. */
|
||||
int
|
||||
|
@ -446,12 +453,8 @@ mk_datestr (char *buffer, time_t atime)
|
|||
{
|
||||
struct tm *tp;
|
||||
|
||||
/* Note: VMS uses an unsigned time_t thus the compiler yields a
|
||||
warning here. You may ignore this warning or def out this test
|
||||
for VMS. The proper way to handle this would be a configure test
|
||||
to a detect properly implemented unsigned time_t. */
|
||||
if ( atime < 0 ) /* 32 bit time_t and after 2038-01-19 */
|
||||
strcpy (buffer, "????" "-??" "-??"); /* mark this as invalid */
|
||||
if (IS_INVALID_TIME_T (atime))
|
||||
strcpy (buffer, "????" "-??" "-??"); /* Mark this as invalid. */
|
||||
else
|
||||
{
|
||||
tp = gmtime (&atime);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue