agent: Add DBUS_SESSION_BUS_ADDRESS et al. to the startup list.
authorWerner Koch <wk@gnupg.org>
Wed, 6 Jun 2018 16:28:44 +0000 (18:28 +0200)
committerWerner Koch <wk@gnupg.org>
Wed, 6 Jun 2018 16:29:15 +0000 (18:29 +0200)
* agent/gpg-agent.c (agent_copy_startup_env): Replace explicit list
with the standard list.
--

Although the function agent_copy_startup_env is newer than
session_env_list_stdenvnames the latter was not used.  When
DBUS_SESSION_BUS_ADDRESS was added to the latter it was forgotten to
add it to the former as well.  Having all stdnames here seems to be
the Right Thing (tm) to do.

GnuPG-bug-id: 3947
Signed-off-by: Werner Koch <wk@gnupg.org>
agent/gpg-agent.c

index bd9a471..1fdc94d 100644 (file)
@@ -1979,15 +1979,15 @@ agent_deinit_default_ctrl (ctrl_t ctrl)
 gpg_error_t
 agent_copy_startup_env (ctrl_t ctrl)
 {
-  static const char *names[] =
-    {"GPG_TTY", "DISPLAY", "TERM", "XAUTHORITY", "PINENTRY_USER_DATA", NULL};
   gpg_error_t err = 0;
-  int idx;
-  const char *value;
+  int iterator = 0;
+  const char *name, *value;
 
-  for (idx=0; !err && names[idx]; idx++)
-    if ((value = session_env_getenv (opt.startup_env, names[idx])))
-      err = session_env_setenv (ctrl->session_env, names[idx], value);
+  while (!err && (name = session_env_list_stdenvnames (&iterator, NULL)))
+    {
+      if ((value = session_env_getenv (opt.startup_env, name)))
+        err = session_env_setenv (ctrl->session_env, name, value);
+    }
 
   if (!err && !ctrl->lc_ctype && opt.startup_lc_ctype)
     if (!(ctrl->lc_ctype = xtrystrdup (opt.startup_lc_ctype)))