[Pkg-gnupg-commit] [gnupg2] 68/166: gpg: Fix memory leak in the error case of signature creation.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Thu Mar 16 22:33:06 UTC 2017


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

dkg pushed a commit to branch experimental
in repository gnupg2.

commit 5996c7bf99f3a681393fd9589276399ebc956cff
Author: Werner Koch <wk at gnupg.org>
Date:   Fri Feb 10 17:16:07 2017 +0100

    gpg: Fix memory leak in the error case of signature creation.
    
    * g10/sign.c (write_signature_packets): Free SIG.  Also replace
    xcalloc by xtrycalloc.
    --
    
    If do_sign fails SIG was not released.  Note that in the good case SIG
    is transferred to PKT and freed by free_packet.
    
    Reported-by: Stephan Müller
    Signed-off-by: Werner Koch <wk at gnupg.org>
---
 g10/sign.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/g10/sign.c b/g10/sign.c
index acc894c..ff099b3 100644
--- a/g10/sign.c
+++ b/g10/sign.c
@@ -686,7 +686,10 @@ write_signature_packets (SK_LIST sk_list, IOBUF out, gcry_md_hd_t hash,
       pk = sk_rover->pk;
 
       /* Build the signature packet.  */
-      sig = xmalloc_clear (sizeof *sig);
+      sig = xtrycalloc (1, sizeof *sig);
+      if (!sig)
+        return gpg_error_from_syserror ();
+
       if (duration || opt.sig_policy_url
           || opt.sig_notations || opt.sig_keyserver_url)
         sig->version = 4;
@@ -731,8 +734,12 @@ write_signature_packets (SK_LIST sk_list, IOBUF out, gcry_md_hd_t hash,
             print_status_sig_created (pk, sig, status_letter);
           free_packet (&pkt);
           if (rc)
-            log_error ("build signature packet failed: %s\n", gpg_strerror (rc));
+            log_error ("build signature packet failed: %s\n",
+                       gpg_strerror (rc));
 	}
+      else
+        xfree (sig);
+
       if (rc)
         return rc;
     }

-- 
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