Fix keystrlen to work when OPT.KEYID_FORMAT is KF_DEFAULT.
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Wed, 9 Dec 2015 18:01:04 +0000 (13:01 -0500)
committerNeal H. Walfield <neal@g10code.com>
Wed, 6 Jan 2016 14:05:21 +0000 (15:05 +0100)
* g10/keyid.c (keystrlen): If opt.keyid_format is KF_DEFAULT unset,
default to KF_SHORT.
(format_keyid): Default to KF_SHORT, not KF_0xLONG.

--
Without this fix, gpgv2 fails with:

gpgv: Ohhhh jeeee: ... this is a bug (keyid.c:342:keystrlen)

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Signed-off-by: Neal H. Walfield <neal@g10code.com>
g10/keyid.c

index cb237ef..69acbe4 100644 (file)
@@ -284,7 +284,7 @@ format_keyid (u32 *keyid, int format, char *buffer, int len)
   if (format == KF_DEFAULT)
     format = opt.keyid_format;
   if (format == KF_DEFAULT)
-    format = KF_0xLONG;
+    format = KF_SHORT;
 
   switch (format)
     {
@@ -324,7 +324,11 @@ format_keyid (u32 *keyid, int format, char *buffer, int len)
 size_t
 keystrlen(void)
 {
-  switch(opt.keyid_format)
+  int format = opt.keyid_format;
+  if (format == KF_DEFAULT)
+    format = KF_SHORT;
+
+  switch(format)
     {
     case KF_SHORT:
       return 8;