Skip to content

Commit

Permalink
path_test: fix cap_rights_init usage
Browse files Browse the repository at this point in the history
Capability rights passed to cap_rights_* are not simple bitmaks and
cannot be ORed together in general (although it will work for certain
subsets of rights).

PR:		277057
Fixes:		e5e1d9c ("path_test: Add a test case for...")
Sponsored by:	The FreeBSD Foundation
  • Loading branch information
emaste committed Feb 15, 2024
1 parent 2911c44 commit 8d1348f
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions tests/sys/file/path_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ ATF_TC_BODY(path_capsicum_empty, tc)
/*
* CAP_READ and CAP_LOOKUP should be sufficient to open a directory.
*/
cap_rights_init(&rights, CAP_READ | CAP_LOOKUP);
cap_rights_init(&rights, CAP_READ, CAP_LOOKUP);
ATF_REQUIRE(cap_rights_limit(pathdfd, &rights) == 0);
dfd = openat(pathdfd, "", O_DIRECTORY | O_EMPTY_PATH);
ATF_REQUIRE(dfd >= 0);
Expand All @@ -256,7 +256,7 @@ ATF_TC_BODY(path_capsicum_empty, tc)
ATF_REQUIRE(fd >= 0);
CHECKED_CLOSE(fd);

cap_rights_init(&rights, CAP_READ | CAP_LOOKUP | CAP_WRITE);
cap_rights_init(&rights, CAP_READ, CAP_LOOKUP, CAP_WRITE);
ATF_REQUIRE(cap_rights_limit(pathfd, &rights) == 0);
fd = openat(pathfd, "", O_RDWR | O_EMPTY_PATH | O_APPEND);
ATF_REQUIRE(fd >= 0);
Expand All @@ -265,7 +265,7 @@ ATF_TC_BODY(path_capsicum_empty, tc)
/*
* CAP_SEEK is needed to open a file for writing without O_APPEND.
*/
cap_rights_init(&rights, CAP_READ | CAP_LOOKUP | CAP_WRITE);
cap_rights_init(&rights, CAP_READ, CAP_LOOKUP, CAP_WRITE);
ATF_REQUIRE(cap_rights_limit(pathfd, &rights) == 0);
fd = openat(pathfd, "", O_RDWR | O_EMPTY_PATH);
ATF_REQUIRE_ERRNO(ENOTCAPABLE, fd == -1);
Expand Down

0 comments on commit 8d1348f

Please sign in to comment.