dirmngr: Fix out of scope use of a var in the keyserver LDAP code.

* dirmngr/ks-engine-ldap.c (extract_attributes): Don't use a variabale
out of scope and cleanup the entire pgpKeySize block.
--

GnuPG-bug-id: 4229
Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2018-10-25 17:21:52 +02:00
parent 0240345728
commit 2b57a8159c
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 10 additions and 23 deletions

View File

@ -1694,26 +1694,16 @@ extract_attributes (LDAPMod ***modlist, char *line)
if (is_pub || is_sub) if (is_pub || is_sub)
{ {
char *size = fields[2]; char padded[6];
int val = atoi (size); int val;
size = NULL;
if (val > 0) val = atoi (fields[2]);
{ if (val < 99999 && val > 0)
/* We zero pad this on the left to make PGP happy. */ {
char padded[6]; /* We zero pad this on the left to make PGP happy. */
if (val < 99999 && val > 0) snprintf (padded, sizeof padded, "%05u", val);
{ modlist_add (modlist, "pgpKeySize", padded);
snprintf (padded, sizeof padded, "%05u", val); }
size = padded;
}
}
if (size)
{
if (is_pub || is_sub)
modlist_add (modlist, "pgpKeySize", size);
}
} }
if (is_pub) if (is_pub)
@ -1736,10 +1726,7 @@ extract_attributes (LDAPMod ***modlist, char *line)
} }
if (algo) if (algo)
{ modlist_add (modlist, "pgpKeyType", algo);
if (is_pub)
modlist_add (modlist, "pgpKeyType", algo);
}
} }
if (is_pub || is_sub || is_sig) if (is_pub || is_sub || is_sig)