[Pkg-gnupg-commit] [gnupg2] 12/292: gpg: Avoid malloc failure due to no key signatures

Daniel Kahn Gillmor dkg at fifthhorseman.net
Mon Nov 21 06:31:21 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit 18bbefa27f9e47e1062ee4d7af09487632795ba7
Author: Werner Koch <wk at gnupg.org>
Date:   Mon Sep 19 08:27:23 2016 +0200

    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 at gnupg.org>
---
 g10/keyedit.c | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/g10/keyedit.c b/g10/keyedit.c
index 87e69b0..cd16ec9 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -408,20 +408,31 @@ check_all_keysigs (KBNODE kb, int only_selected, int only_selfsigs)
 
   /* First we look for duplicates.  */
   {
-    int nsigs = 0;
-    KBNODE *sigs;
+    int nsigs;
+    kbnode_t *sigs;
     int i;
     int last_i;
 
     /* Count the sigs.  */
-    for (n = kb; n; n = n->next)
-      if (is_deleted_kbnode (n))
-        continue;
-      else if (n->pkt->pkttype == PKT_SIGNATURE)
-        nsigs ++;
+    for (nsigs = 0, n = kb; n; n = n->next)
+      {
+        if (is_deleted_kbnode (n))
+          continue;
+        else if (n->pkt->pkttype == PKT_SIGNATURE)
+          nsigs ++;
+      }
+
+    if (!nsigs)
+      return 0; /* No signatures at all.  */
 
     /* 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;
     for (n = kb; n; n = n->next)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list