Fix potential crash in trace macro.
authorWerner Koch <wk@gnupg.org>
Mon, 16 Mar 2015 12:40:34 +0000 (13:40 +0100)
committerWerner Koch <wk@gnupg.org>
Mon, 16 Mar 2015 12:40:34 +0000 (13:40 +0100)
* src/signers.c (gpgme_signers_add): Avoid deref of a NULL KEY in the
trace macro.
* src/engine-spawn.c (engspawn_release): Remove always true condition.
* src/engine-gpg.c (gpg_release): Ditto.

Signed-off-by: Werner Koch <wk@gnupg.org>
src/engine-gpg.c
src/engine-spawn.c
src/signers.c

index 30c3bfb..57aea8b 100644 (file)
@@ -396,8 +396,7 @@ gpg_release (void *engine)
     {
       struct arg_and_data_s *next = gpg->arglist->next;
 
-      if (gpg->arglist)
-       free (gpg->arglist);
+      free (gpg->arglist);
       gpg->arglist = next;
     }
 
index 28a14be..eb4e038 100644 (file)
@@ -355,8 +355,7 @@ engspawn_release (void *engine)
     {
       struct datalist_s *next = esp->arglist->next;
 
-      if (esp->arglist)
-       free (esp->arglist);
+      free (esp->arglist);
       esp->arglist = next;
     }
 
index f43fafc..f540d70 100644 (file)
@@ -66,7 +66,7 @@ gpgme_error_t
 gpgme_signers_add (gpgme_ctx_t ctx, const gpgme_key_t key)
 {
   TRACE_BEG2 (DEBUG_CTX, "gpgme_signers_add", ctx,
-             "key=%p (%s)", key, (key->subkeys && key->subkeys->fpr) ?
+             "key=%p (%s)", key, (key && key->subkeys && key->subkeys->fpr) ?
              key->subkeys->fpr : "invalid");
 
   if (!ctx || !key)