From 14f6a82ca9fdde3a806221ff8d63091ef1ec5e48 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 11 Apr 2005 17:22:23 +0000 Subject: [PATCH] (confucius_mktmpdir): Changed to use mkdtmp(3). --- tools/ChangeLog | 4 ++++ tools/symcryptrun.c | 29 +++++++---------------------- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/tools/ChangeLog b/tools/ChangeLog index 924e11017..82f26d0d3 100644 --- a/tools/ChangeLog +++ b/tools/ChangeLog @@ -1,3 +1,7 @@ +2005-04-11 Werner Koch + + * symcryptrun.c (confucius_mktmpdir): Changed to use mkdtmp(3). + 2005-04-11 Marcus Brinkmann * symcryptrun.c: Implement config file parsing. diff --git a/tools/symcryptrun.c b/tools/symcryptrun.c index d0a8bddb9..73f7e0369 100644 --- a/tools/symcryptrun.c +++ b/tools/symcryptrun.c @@ -227,32 +227,17 @@ i18n_init(void) static char * confucius_mktmpdir (void) { - int res; - char *tmpdir; + char *name; - tmpdir = tmpnam (NULL); - if (!tmpdir) + name = strdup ("/tmp/gpg-XXXXXX"); + if (!name || !mkdtemp (name)) { - log_error (_("cannot create temporary directory name: %s\n"), - strerror (errno)); - return NULL; - } - tmpdir = strdup (tmpdir); - if (!tmpdir) - { - log_error (_("cannot copy temporary directory name: %s\n"), - strerror (errno)); - return NULL; - } - res = mkdir (tmpdir, 0700); - if (res < 0) - { - log_error (_("cannot create temporary directory %s: %s\n"), - tmpdir, strerror (errno)); + log_error (_("can't create temporary directory `%s': %s\n"), + name?name:"", strerror (errno)); return NULL; } - return tmpdir; + return name; } @@ -702,7 +687,7 @@ confucius_main (int mode) tmpdir = confucius_mktmpdir (); if (!tmpdir) return 1; - + /* TMPDIR + "/" + "in" + "\0". */ infile = malloc (strlen (tmpdir) + 1 + 2 + 1); if (!infile)