Add missing mode in open(2) calls with O_CREAT.

When O_CREAT is specified, the third, variadic argument is
required as the permission. If on is not passed, then depending
on the ABI, either the contents of the third argument register
or some arbitrary stuff on the stack will be used as the permission.

This has been merged to NetBSD.

Reviewed by:	asomers, ngie
Obtained from:	CheriBSD
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D20972
This commit is contained in:
Brooks Davis 2019-07-16 22:27:49 +00:00
parent caddc9e343
commit 1575a795cb
6 changed files with 14 additions and 14 deletions

View File

@ -65,7 +65,7 @@ ATF_TC_BODY(ftok_link, tc)
key_t k1, k2, k3;
int fd;
fd = open(path, O_RDONLY | O_CREAT);
fd = open(path, O_RDONLY | O_CREAT, 0600);
ATF_REQUIRE(fd >= 0);
(void)close(fd);

View File

@ -58,7 +58,7 @@ ATF_TC_BODY(fdopen_close, tc)
* used to fdopen(3) a stream is
* closed once the stream is closed.
*/
fd = open(path, O_RDWR | O_CREAT);
fd = open(path, O_RDWR | O_CREAT, 0600);
ATF_REQUIRE(fd >= 0);
@ -85,7 +85,7 @@ ATF_TC_BODY(fdopen_err, tc)
{
int fd;
fd = open(path, O_RDONLY | O_CREAT);
fd = open(path, O_RDONLY | O_CREAT, 0600);
ATF_REQUIRE(fd >= 0);
errno = 0;
@ -126,7 +126,7 @@ ATF_TC_BODY(fdopen_seek, tc)
* with the stream corresponds with the offset
* set earlier for the file descriptor.
*/
fd = open(path, O_RDWR | O_CREAT);
fd = open(path, O_RDWR | O_CREAT, 0600);
ATF_REQUIRE(fd >= 0);
ATF_REQUIRE(write(fd, "garbage", 7) == 7);

View File

@ -62,7 +62,7 @@ ATF_TC_BODY(access_access, tc)
size_t i;
int fd;
fd = open(path, O_RDONLY | O_CREAT);
fd = open(path, O_RDONLY | O_CREAT, 0600);
if (fd < 0)
return;

View File

@ -116,7 +116,7 @@ ATF_TC_BODY(mprotect_access, tc)
size_t i;
int fd;
fd = open(path, O_RDONLY | O_CREAT);
fd = open(path, O_RDONLY | O_CREAT, 0600);
ATF_REQUIRE(fd >= 0);
/*

View File

@ -64,7 +64,7 @@ ATF_TC_BODY(stat_chflags, tc)
(void)memset(&sa, 0, sizeof(struct stat));
(void)memset(&sb, 0, sizeof(struct stat));
fd = open(path, O_RDONLY | O_CREAT);
fd = open(path, O_RDONLY | O_CREAT, 0600);
ATF_REQUIRE(fd != -1);
ATF_REQUIRE(stat(path, &sa) == 0);
@ -210,7 +210,7 @@ ATF_TC_BODY(stat_mtime, tc)
(void)memset(&sa, 0, sizeof(struct stat));
(void)memset(&sb, 0, sizeof(struct stat));
fd[i] = open(path, O_WRONLY | O_CREAT);
fd[i] = open(path, O_WRONLY | O_CREAT, 0600);
ATF_REQUIRE(fd[i] != -1);
ATF_REQUIRE(write(fd[i], "X", 1) == 1);
@ -254,7 +254,7 @@ ATF_TC_BODY(stat_perm, tc)
uid = getuid();
gid = getgid();
fd = open(path, O_RDONLY | O_CREAT);
fd = open(path, O_RDONLY | O_CREAT, 0600);
ATF_REQUIRE(fd != -1);
ATF_REQUIRE(fstat(fd, &sa) == 0);
@ -288,7 +288,7 @@ ATF_TC_BODY(stat_size, tc)
size_t i;
int fd;
fd = open(path, O_WRONLY | O_CREAT);
fd = open(path, O_WRONLY | O_CREAT, 0600);
ATF_REQUIRE(fd >= 0);
for (i = 0; i < n; i++) {
@ -377,7 +377,7 @@ ATF_TC_BODY(stat_symlink, tc)
(void)memset(&sa, 0, sizeof(struct stat));
(void)memset(&sb, 0, sizeof(struct stat));
fd = open(path, O_WRONLY | O_CREAT);
fd = open(path, O_WRONLY | O_CREAT, 0600);
ATF_REQUIRE(fd >= 0);
ATF_REQUIRE(symlink(path, pathlink) == 0);

View File

@ -69,7 +69,7 @@ ATF_TC_BODY(write_err, tc)
errno = 0;
ATF_REQUIRE_ERRNO(EBADF, write(-1, wbuf, sizeof(wbuf)) == -1);
fd = open(path, O_RDWR | O_CREAT);
fd = open(path, O_RDWR | O_CREAT, 0600);
if (fd >= 0) {
@ -141,7 +141,7 @@ ATF_TC_BODY(write_pos, tc)
size_t i;
int fd;
fd = open(path, O_RDWR | O_CREAT);
fd = open(path, O_RDWR | O_CREAT, 0600);
ATF_REQUIRE(fd >= 0);
for (i = 0; i < n; i++) {
@ -171,7 +171,7 @@ ATF_TC_BODY(write_ret, tc)
size_t i, j;
int fd;
fd = open(path, O_WRONLY | O_CREAT);
fd = open(path, O_WRONLY | O_CREAT, 0600);
ATF_REQUIRE(fd >= 0);
(void)memset(buf, 'x', sizeof(buf));