mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
gpg: Avoid malloc failure due to no key signatures
* g10/keyedit.c (check_all_keysigs): Check early for no key signatures. Use xtrycalloc. -- GnuPG-bug-id: 2690 Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
55675fa5a0
commit
18bbefa27f
@ -408,20 +408,31 @@ check_all_keysigs (KBNODE kb, int only_selected, int only_selfsigs)
|
|||||||
|
|
||||||
/* First we look for duplicates. */
|
/* First we look for duplicates. */
|
||||||
{
|
{
|
||||||
int nsigs = 0;
|
int nsigs;
|
||||||
KBNODE *sigs;
|
kbnode_t *sigs;
|
||||||
int i;
|
int i;
|
||||||
int last_i;
|
int last_i;
|
||||||
|
|
||||||
/* Count the sigs. */
|
/* Count the sigs. */
|
||||||
for (n = kb; n; n = n->next)
|
for (nsigs = 0, n = kb; n; n = n->next)
|
||||||
|
{
|
||||||
if (is_deleted_kbnode (n))
|
if (is_deleted_kbnode (n))
|
||||||
continue;
|
continue;
|
||||||
else if (n->pkt->pkttype == PKT_SIGNATURE)
|
else if (n->pkt->pkttype == PKT_SIGNATURE)
|
||||||
nsigs ++;
|
nsigs ++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!nsigs)
|
||||||
|
return 0; /* No signatures at all. */
|
||||||
|
|
||||||
/* Add them all to the SIGS array. */
|
/* Add them all to the SIGS array. */
|
||||||
sigs = xmalloc_clear (sizeof (*sigs) * nsigs);
|
sigs = xtrycalloc (nsigs, sizeof *sigs);
|
||||||
|
if (!sigs)
|
||||||
|
{
|
||||||
|
log_error (_("error allocating memory: %s\n"),
|
||||||
|
gpg_strerror (gpg_error_from_syserror ()));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
for (n = kb; n; n = n->next)
|
for (n = kb; n; n = n->next)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user