HomeFreeBSD

Fix fget_only_user() to return ENOTCAPABLE on a failed capsicum check

Description

Fix fget_only_user() to return ENOTCAPABLE on a failed capsicum check

After eaad8d1303da500ed691bd774742a4555a05e729 four additional
capsicum-test tests started failing. It turns out this is because
fget_only_user() was returning EBADF on a failed capsicum check instead
of forwarding the return value of cap_check_inline() like
fget_unlocked_seq().

capsicum-test failures before this:

[  FAILED  ] 7 tests, listed below:
[  FAILED  ] Capability.OperationsForked
[  FAILED  ] Capability.NoBypassDAC
[  FAILED  ] Pdfork.OtherUserForked
[  FAILED  ] PipePdfork.WildcardWait
[  FAILED  ] OpenatTest.WithFlag
[  FAILED  ] ForkedOpenatTest_WithFlagInCapabilityMode._
[  FAILED  ] Select.LotsOFileDescriptorsForked

After:

[  FAILED  ] 3 tests, listed below:
[  FAILED  ] Capability.NoBypassDAC
[  FAILED  ] Pdfork.OtherUserForked
[  FAILED  ] PipePdfork.WildcardWait

Reviewed By: mjg
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D28691

(cherry picked from commit 0482d7c9e944433abc98fc27a265ae762abce9a0)

Details

Provenance
arichardsonAuthored on Feb 15 2021, 10:09 PM
Reviewer
mjg
Differential Revision
D28691: Fix fget_only_user() to return ENOTCAPABLE on a failed capsicum check
Parents
rG8d42552e7b29: msun: ctanh/ctanhf: Import fix from musl libc
Branches
Unknown
Tags
Unknown