diff options
Diffstat (limited to '')
-rw-r--r-- | tools/symcryptrun.c | 10 |
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"), |