Skip to content

Commit c965135

Browse files
chriswailestgross35
authored andcommitted
Add SECBIT_ constants from securebits.h
See: https://github.com/torvalds/linux/blob/master/include/uapi/linux/securebits.h (backport <#4480>) (cherry picked from commit f811577)
1 parent 1ab0d74 commit c965135

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

libc-test/build.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3953,6 +3953,7 @@ fn test_linux(target: &str) {
39533953
"linux/sched.h",
39543954
"linux/sctp.h",
39553955
"linux/seccomp.h",
3956+
"linux/securebits.h",
39563957
"linux/sock_diag.h",
39573958
"linux/sockios.h",
39583959
"linux/tls.h",

libc-test/semver/linux.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2776,6 +2776,14 @@ SCTP_STATUS
27762776
SCTP_STREAM_RESET_INCOMING
27772777
SCTP_STREAM_RESET_OUTGOING
27782778
SCTP_UNORDERED
2779+
SECBIT_KEEP_CAPS
2780+
SECBIT_KEEP_CAPS_LOCKED
2781+
SECBIT_NOROOT
2782+
SECBIT_NOROOT_LOCKED
2783+
SECBIT_NO_CAP_AMBIENT_RAISE
2784+
SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED
2785+
SECBIT_NO_SETUID_FIXUP
2786+
SECBIT_NO_SETUID_FIXUP_LOCKED
27792787
SECCOMP_ADDFD_FLAG_SEND
27802788
SECCOMP_ADDFD_FLAG_SETFD
27812789
SECCOMP_FILTER_FLAG_LOG
@@ -2804,6 +2812,9 @@ SECCOMP_RET_USER_NOTIF
28042812
SECCOMP_SET_MODE_FILTER
28052813
SECCOMP_SET_MODE_STRICT
28062814
SECCOMP_USER_NOTIF_FLAG_CONTINUE
2815+
SECUREBITS_DEFAULT
2816+
SECURE_ALL_BITS
2817+
SECURE_ALL_LOCKS
28072818
SEEK_DATA
28082819
SEEK_HOLE
28092820
SELFMAG

src/unix/linux_like/linux/mod.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4848,6 +4848,41 @@ pub const IN_ONLYDIR: u32 = 0x0100_0000;
48484848
pub const IN_DONT_FOLLOW: u32 = 0x0200_0000;
48494849
pub const IN_EXCL_UNLINK: u32 = 0x0400_0000;
48504850

4851+
// uapi/linux/securebits.h
4852+
const SECURE_NOROOT: c_int = 0;
4853+
const SECURE_NOROOT_LOCKED: c_int = 1;
4854+
4855+
pub const SECBIT_NOROOT: c_int = issecure_mask(SECURE_NOROOT);
4856+
pub const SECBIT_NOROOT_LOCKED: c_int = issecure_mask(SECURE_NOROOT_LOCKED);
4857+
4858+
const SECURE_NO_SETUID_FIXUP: c_int = 2;
4859+
const SECURE_NO_SETUID_FIXUP_LOCKED: c_int = 3;
4860+
4861+
pub const SECBIT_NO_SETUID_FIXUP: c_int = issecure_mask(SECURE_NO_SETUID_FIXUP);
4862+
pub const SECBIT_NO_SETUID_FIXUP_LOCKED: c_int = issecure_mask(SECURE_NO_SETUID_FIXUP_LOCKED);
4863+
4864+
const SECURE_KEEP_CAPS: c_int = 4;
4865+
const SECURE_KEEP_CAPS_LOCKED: c_int = 5;
4866+
4867+
pub const SECBIT_KEEP_CAPS: c_int = issecure_mask(SECURE_KEEP_CAPS);
4868+
pub const SECBIT_KEEP_CAPS_LOCKED: c_int = issecure_mask(SECURE_KEEP_CAPS_LOCKED);
4869+
4870+
const SECURE_NO_CAP_AMBIENT_RAISE: c_int = 6;
4871+
const SECURE_NO_CAP_AMBIENT_RAISE_LOCKED: c_int = 7;
4872+
4873+
pub const SECBIT_NO_CAP_AMBIENT_RAISE: c_int = issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE);
4874+
pub const SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED: c_int =
4875+
issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE_LOCKED);
4876+
4877+
pub const SECUREBITS_DEFAULT: c_int = 0x00000000;
4878+
pub const SECURE_ALL_BITS: c_int =
4879+
SECBIT_NOROOT | SECBIT_NO_SETUID_FIXUP | SECBIT_KEEP_CAPS | SECBIT_NO_CAP_AMBIENT_RAISE;
4880+
pub const SECURE_ALL_LOCKS: c_int = SECURE_ALL_BITS << 1;
4881+
4882+
const fn issecure_mask(x: c_int) -> c_int {
4883+
1 << x
4884+
}
4885+
48514886
// linux/keyctl.h
48524887
pub const KEY_SPEC_THREAD_KEYRING: i32 = -1;
48534888
pub const KEY_SPEC_PROCESS_KEYRING: i32 = -2;

0 commit comments

Comments
 (0)