From 94fa3c2b25a1979bb838c7d9f9f74375072f4efe Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 14 Nov 2025 13:20:52 +0100 Subject: 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(-) (limited to 'src') 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) -- cgit