summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@g10code.com>2016-02-08 00:31:35 +0100
committerNeal H. Walfield <neal@g10code.com>2016-02-14 14:46:20 +0100
commitc0268c449d0f3d23be5ec7b92fe92e7e078166cf (patch)
tree43e95ef8096ba8801141f7c97a8f7d28e75b92a7
parentcommon: Fix comment. (diff)
downloadgnupg2-c0268c449d0f3d23be5ec7b92fe92e7e078166cf.tar.xz
gnupg2-c0268c449d0f3d23be5ec7b92fe92e7e078166cf.zip
gpg: Fix format_keyid when dynamically allocating the buffer.
* g10/keyid.c (format_keyid): Return a char *, not a const char *. If BUFFER is NULL, then set LEN to the static buffer's size. -- Signed-off-by: Neal H. Walfield <neal@g10code.com>
-rw-r--r--g10/keydb.h2
-rw-r--r--g10/keyid.c7
2 files changed, 6 insertions, 3 deletions
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;