aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2022-10-12 15:57:37 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2022-10-12 16:01:57 +0000
commit3f9e5e59bda05acea409fa3121c835a74672de1c (patch)
treea102d003f07c4a410e9f5cfabb2e52937eebf2bf
parent169487223143b1232ec4686b720b028af8d6d42b (diff)
downloadsrc-3f9e5e59bda05acea409fa3121c835a74672de1c.tar.gz
src-3f9e5e59bda05acea409fa3121c835a74672de1c.zip
sort: use mkstemp(3) instead of reinventing it
MFC After: 1 week
-rw-r--r--usr.bin/sort/file.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/usr.bin/sort/file.c b/usr.bin/sort/file.c
index ffcd71e9f991..3e5754442ac1 100644
--- a/usr.bin/sort/file.c
+++ b/usr.bin/sort/file.c
@@ -195,15 +195,15 @@ file_is_tmp(const char* fn)
char *
new_tmp_file_name(void)
{
- static size_t tfcounter = 0;
- static const char *fn = ".bsdsort.";
char *ret;
- size_t sz;
+ int fd;
- sz = strlen(tmpdir) + 1 + strlen(fn) + 32 + 1;
- ret = sort_malloc(sz);
+ if (asprintf(&ret, "%s/.bsdsort.XXXXXXXXXX", tmpdir) == -1)
+ err(2, "asprintf()");
+ if ((fd = mkstemp(ret)) == -1)
+ err(2, "mkstemp()");
+ close(fd);
- sprintf(ret, "%s/%s%d.%lu", tmpdir, fn, (int) getpid(), (unsigned long)(tfcounter++));
tmp_file_atexit(ret);
return (ret);
}