binary-security-check 2.0.2

Analyzer of security features in executable binaries
1
2
3
4
5
6
7
8
9
10
11
12
use core::num::NonZero;

pub(crate) fn usize_align_up_offset(value: usize, align: NonZero<usize>) -> usize {
    let align_minus_one = align.get().wrapping_sub(1);
    align.get().wrapping_sub(value & align_minus_one) & align_minus_one
}

#[expect(unused)]
pub(crate) fn usize_align_up(value: usize, align: NonZero<usize>) -> usize {
    let align_minus_one = align.get().wrapping_sub(1);
    value.saturating_add(align_minus_one) & !align_minus_one
}