aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2015-03-16 12:40:34 +0000
committerWerner Koch <[email protected]>2015-03-16 12:40:34 +0000
commit8cfcdfe5564f87362e5ec1bfdca5c14aed9c45f0 (patch)
treed2b904fa47d629b41a713756589a41f2e8e824b6
parentFix one byte too short malloc. (diff)
downloadgpgme-8cfcdfe5564f87362e5ec1bfdca5c14aed9c45f0.tar.gz
gpgme-8cfcdfe5564f87362e5ec1bfdca5c14aed9c45f0.zip
Fix potential crash in trace macro.
* 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 <[email protected]>
-rw-r--r--src/engine-gpg.c3
-rw-r--r--src/engine-spawn.c3
-rw-r--r--src/signers.c2
3 files changed, 3 insertions, 5 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index 30c3bfbe..57aea8b0 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -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;
}
diff --git a/src/engine-spawn.c b/src/engine-spawn.c
index 28a14bed..eb4e0385 100644
--- a/src/engine-spawn.c
+++ b/src/engine-spawn.c
@@ -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;
}
diff --git a/src/signers.c b/src/signers.c
index f43fafc7..f540d700 100644
--- a/src/signers.c
+++ b/src/signers.c
@@ -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)