diff options
Diffstat (limited to 'scd')
-rw-r--r-- | scd/ChangeLog | 4 | ||||
-rw-r--r-- | scd/scdaemon.c | 14 |
2 files changed, 15 insertions, 3 deletions
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 <[email protected]> + + * scdaemon.c (create_socket_name): Use TMPDIR. Change callers. + 2010-10-18 Werner Koch <[email protected]> * 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 (); |