summaryrefslogtreecommitdiff
path: root/util/nvmutil/nvmutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/nvmutil/nvmutil.c')
-rw-r--r--util/nvmutil/nvmutil.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c
index 4d7c7dbb..12a6cf5a 100644
--- a/util/nvmutil/nvmutil.c
+++ b/util/nvmutil/nvmutil.c
@@ -466,6 +466,7 @@ static const char *getnvmprogname(void);
* a special kind of hell
*/
static char *new_tmpfile(int *fd, int local, const char *path);
+static int x_i_mkstemp(char *template);
/*
* Sizes in bytes:
@@ -693,7 +694,6 @@ static ino_t tmp_ino;
* prototypes. Should be safe
* on most Unices and compilers
*/
-int mkstemp(char *template);
int fchmod(int fd, mode_t mode);
static int tmp_fd = -1;
@@ -2910,7 +2910,7 @@ new_tmpfile(int *fd, int local, const char *path)
dest[tmppath_len] = '\0';
- fd_tmp = mkstemp(dest);
+ fd_tmp = x_i_mkstemp(dest);
if (fd_tmp == -1)
goto err_new_tmpfile;
@@ -2975,3 +2975,18 @@ err_new_tmpfile:
return NULL;
}
+
+/*
+ * portable mkstemp
+ */
+static int
+x_i_mkstemp(char *template)
+{
+ int fd;
+
+ if (mktemp(template) == NULL)
+ return -1;
+
+ fd = open(template, O_RDWR | O_CREAT | O_EXCL, 0600);
+ return fd;
+}