diff --git a/NEWS b/NEWS index 6a289890e..a10ac3eed 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +Noteworthy changes in version 2.1.0beta2 (unreleased) +----------------------------------------------------- + + * TMPDIR is now also honored when creating a socket using + --no-standard-socket and with symcryptrun's temp files. + + Noteworthy changes in version 2.1.0beta1 (2010-10-26) ----------------------------------------------------- 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 + + * gpg-agent.c (create_socket_name): Use TMPDIR. Change callers. + 2010-10-26 Werner Koch * 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 (); diff --git a/configure.ac b/configure.ac index 265003da2..cc13a13c0 100644 --- a/configure.ac +++ b/configure.ac @@ -24,8 +24,8 @@ min_automake_version="1.10" # Remember to change the version number immediately *after* a release. # Set my_issvn to "yes" for non-released code. Remember to run an # "svn up" and "autogen.sh" right before creating a distribution. -m4_define([my_version], [2.1.0beta1]) -m4_define([my_issvn], [no]) +m4_define([my_version], [2.1.0]) +m4_define([my_issvn], [yes]) m4_define([svn_revision], m4_esyscmd([printf "%d" $(svn info 2>/dev/null \ | sed -n '/^Revision:/ s/[^0-9]//gp'|head -1)])) diff --git a/scd/ChangeLog b/scd/ChangeLog index a02ab4fdd..0624ac837 100644 --- a/scd/ChangeLog +++ b/scd/ChangeLog @@ -1,3 +1,7 @@ +2010-10-27 Werner Koch + + * scdaemon.c (create_socket_name): Use TMPDIR. Change callers. + 2010-10-18 Werner Koch * app-openpgp.c (parse_algorithm_attribute): Remove extra const in diff --git a/scd/scdaemon.c b/scd/scdaemon.c index 741b6d279..da1d7f478 100644 --- a/scd/scdaemon.c +++ b/scd/scdaemon.c @@ -731,7 +731,7 @@ main (int argc, char **argv ) { socket_name = create_socket_name (standard_socket, "S.scdaemon", - "/tmp/gpg-XXXXXX/S.scdaemon"); + "gpg-XXXXXX/S.scdaemon"); fd = FD2INT(create_server_socket (standard_socket, socket_name, &socket_nonce)); @@ -780,7 +780,7 @@ main (int argc, char **argv ) /* Create the socket. */ socket_name = create_socket_name (standard_socket, "S.scdaemon", - "/tmp/gpg-XXXXXX/S.scdaemon"); + "gpg-XXXXXX/S.scdaemon"); fd = FD2INT (create_server_socket (standard_socket, socket_name, &socket_nonce)); @@ -1019,7 +1019,15 @@ create_socket_name (int use_standard_socket, 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 (); diff --git a/tools/ChangeLog b/tools/ChangeLog index 84fbe4098..5ffa9f47d 100644 --- a/tools/ChangeLog +++ b/tools/ChangeLog @@ -1,3 +1,7 @@ +2010-10-27 Werner Koch + + * symcryptrun.c (confucius_mktmpdir): Use TMPDIR. + 2010-10-14 Werner Koch * gpg-connect-agent.c: Add option --agent-program. diff --git a/tools/symcryptrun.c b/tools/symcryptrun.c index 2ef682210..438ed459c 100644 --- a/tools/symcryptrun.c +++ b/tools/symcryptrun.c @@ -303,9 +303,15 @@ remove_file (char *name, int shred) static char * confucius_mktmpdir (void) { - char *name; + char *name, *p; - name = strdup ("/tmp/gpg-XXXXXX"); + p = getenv ("TMPDIR"); + if (!p || !*p) + p = "/tmp"; + if (p[strlen (p) - 1] == '/') + name = xstrconcat (p, "gpg-XXXXXX", NULL); + else + name = xstrconcat (p, "/", "gpg-XXXXXX", NULL); if (!name || !mkdtemp (name)) { log_error (_("can't create temporary directory `%s': %s\n"),