diff options
Diffstat (limited to 'agent')
-rw-r--r-- | agent/ChangeLog | 4 | ||||
-rw-r--r-- | agent/gpg-agent.c | 14 |
2 files changed, 15 insertions, 3 deletions
diff --git a/agent/ChangeLog b/agent/ChangeLog index 9f4bd863e..f41a09607 100644 --- a/agent/ChangeLog +++ b/agent/ChangeLog @@ -1,3 +1,7 @@ +2010-10-27 Werner Koch <[email protected]> + + * gpg-agent.c (create_socket_name): Use TMPDIR. Change callers. + 2010-10-26 Werner Koch <[email protected]> * cache.c (agent_put_cache): Allow deletion even if TTL is passwd 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 (); |