1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

agent: Use "ll" length specifier when time_t is larger.

* agent/command.c (cmd_keytocard): Use KEYTOCARD_TIMESTAMP_FORMAT.

--

On a big-endian 32-bit platform which uses 64-bit time_t, it might go
wrong.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2017-04-10 15:04:57 +09:00
parent 7501f2e9c4
commit 170660ed11

View File

@ -2477,6 +2477,12 @@ cmd_delete_key (assuan_context_t ctx, char *line)
#if SIZEOF_TIME_T > SIZEOF_UNSIGNED_LONG
#define KEYTOCARD_TIMESTAMP_FORMAT "(10:created-at10:%010llu))"
#else
#define KEYTOCARD_TIMESTAMP_FORMAT "(10:created-at10:%010lu))"
#endif
static const char hlp_keytocard[] = static const char hlp_keytocard[] =
"KEYTOCARD [--force] <hexstring_with_keygrip> <serialno> <id> <timestamp>\n" "KEYTOCARD [--force] <hexstring_with_keygrip> <serialno> <id> <timestamp>\n"
"\n"; "\n";
@ -2580,7 +2586,7 @@ cmd_keytocard (assuan_context_t ctx, char *line)
gcry_sexp_release (s_skey); gcry_sexp_release (s_skey);
keydatalen--; /* Decrement for last '\0'. */ keydatalen--; /* Decrement for last '\0'. */
/* Add timestamp "created-at" in the private key */ /* Add timestamp "created-at" in the private key */
snprintf (keydata+keydatalen-1, 30, "(10:created-at10:%010lu))", timestamp); snprintf (keydata+keydatalen-1, 30, KEYTOCARD_TIMESTAMP_FORMAT, timestamp);
keydatalen += 10 + 19 - 1; keydatalen += 10 + 19 - 1;
err = divert_writekey (ctrl, force, serialno, id, keydata, keydatalen); err = divert_writekey (ctrl, force, serialno, id, keydata, keydatalen);
xfree (keydata); xfree (keydata);