diff options
author | Baptiste Daroussin <bapt@FreeBSD.org> | 2022-10-12 15:57:37 +0000 |
---|---|---|
committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2022-10-12 16:01:57 +0000 |
commit | 3f9e5e59bda05acea409fa3121c835a74672de1c (patch) | |
tree | a102d003f07c4a410e9f5cfabb2e52937eebf2bf /usr.bin | |
parent | 169487223143b1232ec4686b720b028af8d6d42b (diff) | |
download | src-3f9e5e59bda05acea409fa3121c835a74672de1c.tar.gz src-3f9e5e59bda05acea409fa3121c835a74672de1c.zip |
sort: use mkstemp(3) instead of reinventing it
MFC After: 1 week
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/sort/file.c | 12 |
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); } |