core: Return an error if NULL is provided for genkey's parms.
authorWerner Koch <wk@gnupg.org>
Thu, 18 Oct 2018 14:50:18 +0000 (16:50 +0200)
committerWerner Koch <wk@gnupg.org>
Thu, 18 Oct 2018 14:54:51 +0000 (16:54 +0200)
* 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 <wk@gnupg.org>
src/debug.c
src/genkey.c

index d7604a7..37baabb 100644 (file)
@@ -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];
index ffca7e8..0108aab 100644 (file)
@@ -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));