(capability: impl CompatCapability)
| 465 | /// [`prctl(PR_CAPBSET_READ,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html |
| 466 | #[inline] |
| 467 | pub fn capability_is_in_bounding_set(capability: impl CompatCapability) -> io::Result<bool> { |
| 468 | let capset = capability.as_capability_set(private::Token).bits(); |
| 469 | if capset.count_ones() != 1 { |
| 470 | return Err(Errno::INVAL); |
| 471 | } |
| 472 | let cap = capset.trailing_zeros(); |
| 473 | |
| 474 | // as *mut _ should be ptr::without_provenance_mut but our MSRV does not allow it. |
| 475 | unsafe { prctl_2args(PR_CAPBSET_READ, cap as usize as *mut _) }.map(|r| r != 0) |
| 476 | } |
| 477 | |
| 478 | const PR_CAPBSET_DROP: c_int = 24; |
| 479 |
nothing calls this directly
no test coverage detected