gpg: Fix format_keyid when dynamically allocating the buffer.
authorNeal H. Walfield <neal@g10code.com>
Sun, 7 Feb 2016 23:31:35 +0000 (00:31 +0100)
committerNeal H. Walfield <neal@g10code.com>
Sun, 14 Feb 2016 13:46:20 +0000 (14:46 +0100)
* 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>
g10/keydb.h
g10/keyid.c

index e679d94..9b4a1cf 100644 (file)
@@ -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);
index f684276..49eb5f6 100644 (file)
@@ -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;