svn commit: r337929 - in head/tests/sys: aio file kern kern/pipe posixshm
Alan Somers
asomers at FreeBSD.org
Thu Aug 16 21:36:22 UTC 2018
Author: asomers
Date: Thu Aug 16 21:36:19 2018
New Revision: 337929
URL: https://svnweb.freebsd.org/changeset/base/337929
Log:
Fix Coverity warnings about mkstemp in tests
umask(2) should always be used prior to mkstemp(3) so the temporary file
won't be created with insecure permissions.
Reported by: Coverity
CID: 1331605 1347173 1375366 1339800 1331604 1296056 1296060
CID: 1296057 1296062
MFC after: 2 weeks
Modified:
head/tests/sys/aio/aio_kqueue_test.c
head/tests/sys/aio/lio_kqueue_test.c
head/tests/sys/file/dup_test.c
head/tests/sys/file/flock_helper.c
head/tests/sys/kern/kern_copyin.c
head/tests/sys/kern/pipe/pipe_overcommit2_test.c
head/tests/sys/kern/ptrace_test.c
head/tests/sys/kern/unix_passfd_test.c
head/tests/sys/posixshm/posixshm_test.c
Modified: head/tests/sys/aio/aio_kqueue_test.c
==============================================================================
--- head/tests/sys/aio/aio_kqueue_test.c Thu Aug 16 19:48:07 2018 (r337928)
+++ head/tests/sys/aio/aio_kqueue_test.c Thu Aug 16 21:36:19 2018 (r337929)
@@ -36,6 +36,7 @@
#include <sys/types.h>
#include <sys/event.h>
+#include <sys/stat.h>
#include <sys/time.h>
#include <aio.h>
#include <err.h>
@@ -90,6 +91,7 @@ main (int argc, char *argv[])
if (argc == 1) {
strcpy(pathname, PATH_TEMPLATE);
+ umask(0077);
fd = mkstemp(pathname);
file = pathname;
tmp_file = 1;
Modified: head/tests/sys/aio/lio_kqueue_test.c
==============================================================================
--- head/tests/sys/aio/lio_kqueue_test.c Thu Aug 16 19:48:07 2018 (r337928)
+++ head/tests/sys/aio/lio_kqueue_test.c Thu Aug 16 21:36:19 2018 (r337929)
@@ -32,6 +32,7 @@
#include <sys/types.h>
#include <sys/event.h>
+#include <sys/stat.h>
#include <sys/time.h>
#include <aio.h>
#include <fcntl.h>
@@ -86,6 +87,7 @@ main(int argc, char *argv[])
if (argc == 1) {
strcpy(pathname, PATH_TEMPLATE);
+ umask(0077);
fd = mkstemp(pathname);
file = pathname;
tmp_file = 1;
Modified: head/tests/sys/file/dup_test.c
==============================================================================
--- head/tests/sys/file/dup_test.c Thu Aug 16 19:48:07 2018 (r337928)
+++ head/tests/sys/file/dup_test.c Thu Aug 16 21:36:19 2018 (r337929)
@@ -50,6 +50,7 @@
* open files limit work.
*/
+#include <sys/stat.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
@@ -68,6 +69,7 @@ getafile(void)
int fd;
char temp[] = "/tmp/dup2XXXXXXXXX";
+ umask(0077);
if ((fd = mkstemp(temp)) < 0)
err(1, "mkstemp");
remove(temp);
Modified: head/tests/sys/file/flock_helper.c
==============================================================================
--- head/tests/sys/file/flock_helper.c Thu Aug 16 19:48:07 2018 (r337928)
+++ head/tests/sys/file/flock_helper.c Thu Aug 16 21:36:19 2018 (r337929)
@@ -92,6 +92,7 @@ make_file(const char *pathname, off_t sz)
filename = malloc(len);
strcpy(filename, pathname);
strcat(filename, template);
+ umask(0077);
fd = mkstemp(filename);
if (fd < 0)
err(1, "mkstemp");
Modified: head/tests/sys/kern/kern_copyin.c
==============================================================================
--- head/tests/sys/kern/kern_copyin.c Thu Aug 16 19:48:07 2018 (r337928)
+++ head/tests/sys/kern/kern_copyin.c Thu Aug 16 21:36:19 2018 (r337929)
@@ -31,6 +31,7 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
+#include <sys/stat.h>
#include <errno.h>
#include <limits.h>
#include <stdio.h>
@@ -69,6 +70,7 @@ ATF_TC_BODY(kern_copyin, tc)
atf_tc_skip("Platform is not supported.");
#endif
+ umask(0077);
scratch_file = mkstemp(template);
ATF_REQUIRE(scratch_file != -1);
unlink(template);
Modified: head/tests/sys/kern/pipe/pipe_overcommit2_test.c
==============================================================================
--- head/tests/sys/kern/pipe/pipe_overcommit2_test.c Thu Aug 16 19:48:07 2018 (r337928)
+++ head/tests/sys/kern/pipe/pipe_overcommit2_test.c Thu Aug 16 21:36:19 2018 (r337929)
@@ -27,6 +27,7 @@
*/
#include <sys/param.h>
+#include <sys/stat.h>
#include <err.h>
#include <errno.h>
#include <fcntl.h>
@@ -50,6 +51,7 @@ main(void)
lastfd = -1;
+ umask(0077);
if (mkstemp(template) == -1)
err(1, "mkstemp failed");
Modified: head/tests/sys/kern/ptrace_test.c
==============================================================================
--- head/tests/sys/kern/ptrace_test.c Thu Aug 16 19:48:07 2018 (r337928)
+++ head/tests/sys/kern/ptrace_test.c Thu Aug 16 21:36:19 2018 (r337929)
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
#include <sys/ptrace.h>
#include <sys/queue.h>
#include <sys/runq.h>
+#include <sys/stat.h>
#include <sys/syscall.h>
#include <sys/sysctl.h>
#include <sys/user.h>
@@ -3347,6 +3348,7 @@ ATF_TC_BODY(ptrace__PT_ATTACH_with_SBDRY_thread, tc)
ATF_REQUIRE(pthread_barrier_init(&barrier, &battr, 2) == 0);
(void)snprintf(tmpfile, sizeof(tmpfile), "./ptrace.XXXXXX");
+ umask(0077);
fd = mkstemp(tmpfile);
ATF_REQUIRE(fd >= 0);
Modified: head/tests/sys/kern/unix_passfd_test.c
==============================================================================
--- head/tests/sys/kern/unix_passfd_test.c Thu Aug 16 19:48:07 2018 (r337928)
+++ head/tests/sys/kern/unix_passfd_test.c Thu Aug 16 21:36:19 2018 (r337929)
@@ -87,6 +87,7 @@ tempfile(int *fdp)
snprintf(path, PATH_MAX, "%s/unix_passfd.XXXXXXXXXXXXXXX",
getenv("TMPDIR") == NULL ? "/tmp" : getenv("TMPDIR"));
+ umask(0077);
fd = mkstemp(path);
ATF_REQUIRE_MSG(fd != -1, "mkstemp(%s) failed", path);
(void)unlink(path);
Modified: head/tests/sys/posixshm/posixshm_test.c
==============================================================================
--- head/tests/sys/posixshm/posixshm_test.c Thu Aug 16 19:48:07 2018 (r337928)
+++ head/tests/sys/posixshm/posixshm_test.c Thu Aug 16 21:36:19 2018 (r337929)
@@ -54,6 +54,7 @@ gen_test_path(void)
snprintf(test_path, sizeof(test_path), "%s/tmp.XXXXXX",
getenv("TMPDIR") == NULL ? "/tmp" : getenv("TMPDIR"));
test_path[sizeof(test_path) - 1] = '\0';
+ umask(0077);
ATF_REQUIRE_MSG(mkstemp(test_path) != -1,
"mkstemp failed; errno=%d", errno);
ATF_REQUIRE_MSG(unlink(test_path) == 0,
More information about the svn-src-head
mailing list