aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2018-10-18 14:50:18 +0000
committerWerner Koch <[email protected]>2018-10-18 14:54:51 +0000
commit174af15725d4989a840ff3098996cc8a0568f724 (patch)
tree412a6576c697748479c753dfe6e51b784a62b27b
parentpython: do not export HAVE_CXX11 definition (diff)
downloadgpgme-174af15725d4989a840ff3098996cc8a0568f724.tar.gz
gpgme-174af15725d4989a840ff3098996cc8a0568f724.zip
core: Return an error if NULL is provided for genkey's parms.
* src/debug.c (_gpgme_debug_buffer): Bail out of BUF is NULL. * src/genkey.c (gpgme_op_genkey): Do no deref a NULL in TRACE_LOGBUF. (gpgme_op_genkey_start): Ditto. Return an error if PARMS is NULL. -- This robustness patch should solve one part of GnuPG-bug-id: 4192 Signed-off-by: Werner Koch <[email protected]>
-rw-r--r--src/debug.c3
-rw-r--r--src/genkey.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/src/debug.c b/src/debug.c
index d7604a7c..37baabb0 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -379,6 +379,9 @@ _gpgme_debug_buffer (int lvl, const char *const fmt,
if (!_gpgme_debug_trace ())
return;
+ if (!buffer)
+ return;
+
while (idx < len)
{
char str[51];
diff --git a/src/genkey.c b/src/genkey.c
index ffca7e8e..0108aab0 100644
--- a/src/genkey.c
+++ b/src/genkey.c
@@ -283,9 +283,9 @@ gpgme_op_genkey_start (gpgme_ctx_t ctx, const char *parms,
TRACE_BEG2 (DEBUG_CTX, "gpgme_op_genkey_start", ctx,
"pubkey=%p, seckey=%p", pubkey, seckey);
- TRACE_LOGBUF (parms, strlen (parms));
+ TRACE_LOGBUF (parms, parms? strlen (parms):0);
- if (!ctx)
+ if (!ctx || parms)
return TRACE_ERR (gpg_error (GPG_ERR_INV_ARG));
err = genkey_start (ctx, 0, parms, pubkey, seckey);
@@ -304,7 +304,7 @@ gpgme_op_genkey (gpgme_ctx_t ctx, const char *parms, gpgme_data_t pubkey,
TRACE_BEG2 (DEBUG_CTX, "gpgme_op_genkey", ctx,
"pubkey=%p, seckey=%p", pubkey, seckey);
- TRACE_LOGBUF (parms, strlen (parms));
+ TRACE_LOGBUF (parms, parms? strlen (parms):0);
if (!ctx)
return TRACE_ERR (gpg_error (GPG_ERR_INV_ARG));