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,
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to