diff --git a/g10/keydb.h b/g10/keydb.h index e679d94b4..9b4a1cfb5 100644 --- a/g10/keydb.h +++ b/g10/keydb.h @@ -399,7 +399,7 @@ char *pubkey_string (PKT_public_key *pk, char *buffer, size_t bufsize); #define PUBKEY_STRING_SIZE 32 u32 v3_keyid (gcry_mpi_t a, u32 *ki); void hash_public_key( gcry_md_hd_t md, PKT_public_key *pk ); -const char *format_keyid (u32 *keyid, int format, char *buffer, int len); +char *format_keyid (u32 *keyid, int format, char *buffer, int len); size_t keystrlen(void); const char *keystr(u32 *keyid); const char *keystr_with_sub (u32 *main_kid, u32 *sub_kid); diff --git a/g10/keyid.c b/g10/keyid.c index f6842762e..49eb5f6d5 100644 --- a/g10/keyid.c +++ b/g10/keyid.c @@ -274,12 +274,15 @@ v3_keyid (gcry_mpi_t a, u32 *ki) } -const char * +char * format_keyid (u32 *keyid, int format, char *buffer, int len) { char tmp[KEYID_STR_SIZE]; if (! buffer) - buffer = tmp; + { + buffer = tmp; + len = sizeof (tmp); + } if (format == KF_DEFAULT) format = opt.keyid_format;