|
|
|
|
@@ -0,0 +1,139 @@
|
|
|
|
|
From 94fa3c2b25a1979bb838c7d9f9f74375072f4efe Mon Sep 17 00:00:00 2001
|
|
|
|
|
From: Werner Koch <wk@gnupg.org>
|
|
|
|
|
Date: Fri, 14 Nov 2025 13:20:52 +0100
|
|
|
|
|
Subject: [PATCH] Treat empty DISPLAY envvar as unset.
|
|
|
|
|
|
|
|
|
|
* src/engine-gpg.c (gpg_new): Do not pass option --display if DISPLAY
|
|
|
|
|
is set to the empty string.
|
|
|
|
|
* src/engine-gpgsm.c (gpgsm_new): Likewiese for sending the display
|
|
|
|
|
option.
|
|
|
|
|
* src/engine-g13.c (g13_new): Ditto.
|
|
|
|
|
* src/engine-assuan.c (llass_new): Ditto.
|
|
|
|
|
* src/engine-uiserver.c (uiserver_new): Ditto.
|
|
|
|
|
--
|
|
|
|
|
|
|
|
|
|
GnuPG-bug-id: 7919
|
|
|
|
|
---
|
|
|
|
|
src/engine-assuan.c | 5 ++++-
|
|
|
|
|
src/engine-g13.c | 4 +++-
|
|
|
|
|
src/engine-gpg.c | 4 +++-
|
|
|
|
|
src/engine-gpgsm.c | 4 +++-
|
|
|
|
|
src/engine-uiserver.c | 4 +++-
|
|
|
|
|
5 files changed, 16 insertions(+), 5 deletions(-)
|
|
|
|
|
|
|
|
|
|
diff --git a/src/engine-assuan.c b/src/engine-assuan.c
|
|
|
|
|
index e96313ff..654d41c8 100644
|
|
|
|
|
--- a/src/engine-assuan.c
|
|
|
|
|
+++ b/src/engine-assuan.c
|
|
|
|
|
@@ -265,7 +265,7 @@ llass_new (void **engine, const char *file_name, const char *home_dir,
|
|
|
|
|
err = _gpgme_getenv ("DISPLAY", &dft_display);
|
|
|
|
|
if (err)
|
|
|
|
|
goto leave;
|
|
|
|
|
- if (dft_display)
|
|
|
|
|
+ if (dft_display && *dft_display)
|
|
|
|
|
{
|
|
|
|
|
if (gpgrt_asprintf (&optstr, "OPTION display=%s", dft_display) < 0)
|
|
|
|
|
{
|
|
|
|
|
@@ -281,8 +281,11 @@ llass_new (void **engine, const char *file_name, const char *home_dir,
|
|
|
|
|
if (err)
|
|
|
|
|
goto leave;
|
|
|
|
|
}
|
|
|
|
|
+ else
|
|
|
|
|
+ free (dft_display);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
if (llass->opt.gpg_agent)
|
|
|
|
|
err = _gpgme_getenv ("GPG_TTY", &env_tty);
|
|
|
|
|
|
|
|
|
|
diff --git a/src/engine-g13.c b/src/engine-g13.c
|
|
|
|
|
index e30c1834..c37800e6 100644
|
|
|
|
|
--- a/src/engine-g13.c
|
|
|
|
|
+++ b/src/engine-g13.c
|
|
|
|
|
@@ -268,7 +268,7 @@ g13_new (void **engine, const char *file_name, const char *home_dir,
|
|
|
|
|
err = _gpgme_getenv ("DISPLAY", &dft_display);
|
|
|
|
|
if (err)
|
|
|
|
|
goto leave;
|
|
|
|
|
- if (dft_display)
|
|
|
|
|
+ if (dft_display && *dft_display)
|
|
|
|
|
{
|
|
|
|
|
if (gpgrt_asprintf (&optstr, "OPTION display=%s", dft_display) < 0)
|
|
|
|
|
{
|
|
|
|
|
@@ -284,6 +284,8 @@ g13_new (void **engine, const char *file_name, const char *home_dir,
|
|
|
|
|
if (err)
|
|
|
|
|
goto leave;
|
|
|
|
|
}
|
|
|
|
|
+ else
|
|
|
|
|
+ free (dft_display);
|
|
|
|
|
|
|
|
|
|
err = _gpgme_getenv ("GPG_TTY", &env_tty);
|
|
|
|
|
if (isatty (1) || env_tty || err)
|
|
|
|
|
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
|
|
|
|
|
index c6c5c4e6..4cc4dd83 100644
|
|
|
|
|
--- a/src/engine-gpg.c
|
|
|
|
|
+++ b/src/engine-gpg.c
|
|
|
|
|
@@ -697,7 +697,7 @@ gpg_new (void **engine, const char *file_name, const char *home_dir,
|
|
|
|
|
rc = _gpgme_getenv ("DISPLAY", &dft_display);
|
|
|
|
|
if (rc)
|
|
|
|
|
goto leave;
|
|
|
|
|
- if (dft_display)
|
|
|
|
|
+ if (dft_display && *dft_display)
|
|
|
|
|
{
|
|
|
|
|
rc = add_gpg_arg_with_value (gpg, "--display=", dft_display, 0);
|
|
|
|
|
|
|
|
|
|
@@ -705,6 +705,8 @@ gpg_new (void **engine, const char *file_name, const char *home_dir,
|
|
|
|
|
if (rc)
|
|
|
|
|
goto leave;
|
|
|
|
|
}
|
|
|
|
|
+ else
|
|
|
|
|
+ free (dft_display);
|
|
|
|
|
|
|
|
|
|
rc = _gpgme_getenv ("GPG_TTY", &env_tty);
|
|
|
|
|
if (isatty (1) || env_tty || rc)
|
|
|
|
|
diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c
|
|
|
|
|
index ff77c8fc..d464aeed 100644
|
|
|
|
|
--- a/src/engine-gpgsm.c
|
|
|
|
|
+++ b/src/engine-gpgsm.c
|
|
|
|
|
@@ -474,7 +474,7 @@ gpgsm_new (void **engine, const char *file_name, const char *home_dir,
|
|
|
|
|
err = _gpgme_getenv ("DISPLAY", &dft_display);
|
|
|
|
|
if (err)
|
|
|
|
|
goto leave;
|
|
|
|
|
- if (dft_display)
|
|
|
|
|
+ if (dft_display && *dft_display)
|
|
|
|
|
{
|
|
|
|
|
if (gpgrt_asprintf (&optstr, "OPTION display=%s", dft_display) < 0)
|
|
|
|
|
{
|
|
|
|
|
@@ -490,6 +490,8 @@ gpgsm_new (void **engine, const char *file_name, const char *home_dir,
|
|
|
|
|
if (err)
|
|
|
|
|
goto leave;
|
|
|
|
|
}
|
|
|
|
|
+ else
|
|
|
|
|
+ free (dft_display);
|
|
|
|
|
|
|
|
|
|
err = _gpgme_getenv ("GPG_TTY", &env_tty);
|
|
|
|
|
if (isatty (1) || env_tty || err)
|
|
|
|
|
diff --git a/src/engine-uiserver.c b/src/engine-uiserver.c
|
|
|
|
|
index 6c89082e..aec07f30 100644
|
|
|
|
|
--- a/src/engine-uiserver.c
|
|
|
|
|
+++ b/src/engine-uiserver.c
|
|
|
|
|
@@ -314,7 +314,7 @@ uiserver_new (void **engine, const char *file_name, const char *home_dir,
|
|
|
|
|
err = _gpgme_getenv ("DISPLAY", &dft_display);
|
|
|
|
|
if (err)
|
|
|
|
|
goto leave;
|
|
|
|
|
- if (dft_display)
|
|
|
|
|
+ if (dft_display && *dft_display)
|
|
|
|
|
{
|
|
|
|
|
if (gpgrt_asprintf (&optstr, "OPTION display=%s", dft_display) < 0)
|
|
|
|
|
{
|
|
|
|
|
@@ -330,6 +330,8 @@ uiserver_new (void **engine, const char *file_name, const char *home_dir,
|
|
|
|
|
if (err)
|
|
|
|
|
goto leave;
|
|
|
|
|
}
|
|
|
|
|
+ else
|
|
|
|
|
+ free (dft_display);
|
|
|
|
|
|
|
|
|
|
err = _gpgme_getenv ("GPG_TTY", &env_tty);
|
|
|
|
|
if (isatty (1) || env_tty || err)
|
|
|
|
|
--
|
|
|
|
|
2.30.2
|
|
|
|
|
|