Package: pinentry-gnome3
Version: 1.3.3-2
Severity: normal
Tags: patch

As reported upstream on [email protected] in message
id:cafh6oawx7_nvxc1pwdayx-s3tzxgg_bneyspzmg5duhca63...@mail.gmail.com ,
when G_MESSAGES_DEBUG is set to some more verbose value, pinentry-gnome3
chokes by dumping Glib/Gcr messages to stdout, which interferes with the
assuan connectivity.

Kernc has provided a patch on that mailing list, attached here.

From: Kernc <[email protected]>

By default, GLib/Gcr/libsecret outputs debug/info logging messages
to stdout, but we use that as the Assuan channel, and outputting to
it anything but the expected verbs breaks pinentry pipelines
in confusing ways.

It is unknown whether a similar patch is needed for gtk-2
or other flavors via the 'CLEARPASSPHRASE' command,
nor if G_MESSAGES_DEBUG needs unsetting from the environment.

An old user reports Gtk-warnings even with pinentry-qt,
but their issue needs more verification.

https://web.archive.org/web/20260629091849/https://dev.gnupg.org/T4144.html

Care must be placed in who inherits our Assuan fds
and what they do with them.

GnuPG-bug-id: 4144
GnuPG-bug-id: 2243
GnuPG-bug-id: 2397
Signed-off-by: Kernc <[email protected]>
---
 gnome3/pinentry-gnome3.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/gnome3/pinentry-gnome3.c b/gnome3/pinentry-gnome3.c
index 7f21d6f..3692f49 100644
--- a/gnome3/pinentry-gnome3.c
+++ b/gnome3/pinentry-gnome3.c
@@ -518,6 +518,13 @@ main (int argc, char *argv[])
 {
   pinentry_init (PGMNAME);

+/* Prevent logging messages escaping to stdout (our Assuan channel). */
+#if GLIB_CHECK_VERSION (2, 68, 0)
+  g_log_writer_default_set_use_stderr (TRUE);
+#else
+  g_unsetenv ("G_MESSAGES_DEBUG");
+#endif
+
 #ifdef FALLBACK_CURSES
   if (!getenv ("DBUS_SESSION_BUS_ADDRESS"))
     {
-- 
2.47.3
Regards,

        --dkg

-- System Information:
Debian Release: forky/sid
  APT prefers testing-debug
  APT policy: (500, 'testing-debug'), (500, 'testing'), (500, 'oldstable'), 
(200, 'unstable-debug'), (200, 'unstable'), (1, 'experimental-debug'), (1, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 7.1.3+deb14-amd64 (SMP w/20 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages pinentry-gnome3 depends on:
ii  gcr              3.41.2-6+b1
ii  libassuan9       3.0.2-2+b2
ii  libc6            2.42-17
ii  libgcr-base-3-1  3.41.2-6+b1
ii  libglib2.0-0t64  2.88.3-2
ii  libgpg-error0    1.61-3
ii  libncursesw6     6.6+20260608-2
ii  libsecret-1-0    0.21.7-2+b1
ii  libtinfo6        6.6+20260608-2

Versions of packages pinentry-gnome3 recommends:
ii  dbus-user-session  1.16.2-5+b1

Versions of packages pinentry-gnome3 suggests:
pn  pinentry-doc  <none>

-- no debconf information

Attachment: signature.asc
Description: PGP signature

Reply via email to