diff options
Diffstat (limited to '')
-rw-r--r-- | agent/gpg-agent.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index b526af7e3..8d0000f70 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -1026,10 +1026,10 @@ main (int argc, char **argv ) /* Create the sockets. */ socket_name = create_socket_name - ("S.gpg-agent", "/tmp/gpg-XXXXXX/S.gpg-agent"); + ("S.gpg-agent", "gpg-XXXXXX/S.gpg-agent"); if (opt.ssh_support) socket_name_ssh = create_socket_name - ("S.gpg-agent.ssh", "/tmp/gpg-XXXXXX/S.gpg-agent.ssh"); + ("S.gpg-agent.ssh", "gpg-XXXXXX/S.gpg-agent.ssh"); fd = create_server_socket (socket_name, 0, &socket_nonce); if (opt.ssh_support) @@ -1446,7 +1446,15 @@ create_socket_name (char *standard_name, char *template) name = make_filename (opt.homedir, standard_name, NULL); else { - name = xstrdup (template); + /* Prepend the tmp directory to the template. */ + p = getenv ("TMPDIR"); + if (!p || !*p) + p = "/tmp"; + if (p[strlen (p) - 1] == '/') + name = xstrconcat (p, template, NULL); + else + name = xstrconcat (p, "/", template, NULL); + p = strrchr (name, '/'); if (!p) BUG (); |