aboutsummaryrefslogtreecommitdiffstats
path: root/tools/symcryptrun.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tools/symcryptrun.c10
1 files changed, 8 insertions, 2 deletions
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"),