From 9f5578c29adba6d4f7d3650121d07322c2f8d254 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 19 Aug 2013 11:44:59 +0200 Subject: [PATCH] agent: Fix UPDATESTARTUPTTY for ssh. * agent/command-ssh.c (setup_ssh_env): Fix env setting. -- gniibe reported this to gnupg-devel on 2012-07-04: [...] (2) UPDATESTARTUPTTY doesn't work to switch TTY for pinentry for SSH. [...] Current implementation: In the function start_command_handler_ssh, the logic puts priority on ctrl->session_env which is initialized by agent_init_default_ctrl. There are always GPG_TTY and TERM defined, because lines around 968 in gpg-agent.c, it says: /* Make sure that we have a default ttyname. */ While UPDATESTARTUPTTY updates opt.startup_env, it doesn't affect at all. Here is a patch to point the issue. Tested and works for me. Signed-off-by: Werner Koch --- agent/command-ssh.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/agent/command-ssh.c b/agent/command-ssh.c index a76769700..3583ea068 100644 --- a/agent/command-ssh.c +++ b/agent/command-ssh.c @@ -3369,8 +3369,7 @@ setup_ssh_env (ctrl_t ctrl) const char *value; for (idx=0; !err && names[idx]; idx++) - if (!session_env_getenv (ctrl->session_env, names[idx]) - && (value = session_env_getenv (opt.startup_env, names[idx]))) + if ((value = session_env_getenv (opt.startup_env, names[idx]))) err = session_env_setenv (ctrl->session_env, names[idx], value); if (!err && !ctrl->lc_ctype && opt.startup_lc_ctype)