Regression: tests failing on Solaris 10 for >= 2.0.23

Werner Koch wk at
Thu Aug 14 20:01:00 CEST 2014


It might be that you are running an older version of gpg-agent which
does not implement AGENT_ID and in this case the debug code might be
triggered with a NULL for the text value.
Can you please try the patch for libassuan below.

However, I doubt that this is the reason for Solaris because I assume
that printf ("%s", NULL) does not bail out on there but I am not sure.
The AIX man page explictly remarks that it is undefined (as stated by
Posix).  Time to move our own printf code from GnuPG to libgpg-error and
have libassuan et al use that code too.  And we have the guarantee that
"%zu" and such work.



>From d081ab69a6d726528d0ea1ba88736a76fce99950 Mon Sep 17 00:00:00 2001
From: Werner Koch <wk at>
Date: Thu, 14 Aug 2014 17:15:04 +0200
Subject: [PATCH] Fix possible segv in a call to _assuan_debug.

* src/context.c (assuan_set_error): Do not pass NULL for %s in the
trace function.
 src/context.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/context.c b/src/context.c
index b4d4d49..62b7f57 100644
--- a/src/context.c
+++ b/src/context.c
@@ -190,7 +190,7 @@ assuan_set_error (assuan_context_t ctx, gpg_error_t err, const char *text)
   TRACE4 (ctx, ASSUAN_LOG_CTX, "assuan_set_error", ctx,
          "err=%i (%s,%s),text=%s", err, gpg_strsource (err),
-         gpg_strerror (err), text);
+         gpg_strerror (err), text?text:"(none)");
   ctx->err_no = err;
   ctx->err_str = text;

Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.

More information about the Gnupg-devel mailing list