mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-08 13:33:44 +02:00
Fix some warnings by either factoring out or allowing in one case.
This commit is contained in:
parent
80cee57255
commit
ceaba4f725
4 changed files with 9 additions and 8 deletions
|
@ -1,13 +1,12 @@
|
||||||
// (c) 2020-2022 ZeroTier, Inc. -- currently propritery pending actual release and licensing. See LICENSE.md.
|
// (c) 2020-2022 ZeroTier, Inc. -- currently propritery pending actual release and licensing. See LICENSE.md.
|
||||||
|
|
||||||
use std::mem::MaybeUninit;
|
|
||||||
use std::sync::atomic::{AtomicU64, Ordering};
|
use std::sync::atomic::{AtomicU64, Ordering};
|
||||||
|
|
||||||
use openssl::rand::rand_bytes;
|
use openssl::rand::rand_bytes;
|
||||||
|
|
||||||
pub fn next_u32_secure() -> u32 {
|
pub fn next_u32_secure() -> u32 {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut tmp: [u32; 1] = MaybeUninit::uninit().assume_init();
|
let mut tmp = [0u32; 1];
|
||||||
assert!(rand_bytes(&mut *(tmp.as_mut_ptr().cast::<[u8; 4]>())).is_ok());
|
assert!(rand_bytes(&mut *(tmp.as_mut_ptr().cast::<[u8; 4]>())).is_ok());
|
||||||
tmp[0]
|
tmp[0]
|
||||||
}
|
}
|
||||||
|
@ -15,7 +14,7 @@ pub fn next_u32_secure() -> u32 {
|
||||||
|
|
||||||
pub fn next_u64_secure() -> u64 {
|
pub fn next_u64_secure() -> u64 {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut tmp: [u64; 1] = MaybeUninit::uninit().assume_init();
|
let mut tmp = [0u64; 1];
|
||||||
assert!(rand_bytes(&mut *(tmp.as_mut_ptr().cast::<[u8; 8]>())).is_ok());
|
assert!(rand_bytes(&mut *(tmp.as_mut_ptr().cast::<[u8; 8]>())).is_ok());
|
||||||
tmp[0]
|
tmp[0]
|
||||||
}
|
}
|
||||||
|
@ -23,7 +22,7 @@ pub fn next_u64_secure() -> u64 {
|
||||||
|
|
||||||
pub fn next_u128_secure() -> u128 {
|
pub fn next_u128_secure() -> u128 {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut tmp: [u128; 1] = MaybeUninit::uninit().assume_init();
|
let mut tmp = [0u128; 1];
|
||||||
assert!(rand_bytes(&mut *(tmp.as_mut_ptr().cast::<[u8; 16]>())).is_ok());
|
assert!(rand_bytes(&mut *(tmp.as_mut_ptr().cast::<[u8; 16]>())).is_ok());
|
||||||
tmp[0]
|
tmp[0]
|
||||||
}
|
}
|
||||||
|
@ -36,7 +35,7 @@ pub fn fill_bytes_secure(dest: &mut [u8]) {
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn get_bytes_secure<const COUNT: usize>() -> [u8; COUNT] {
|
pub fn get_bytes_secure<const COUNT: usize>() -> [u8; COUNT] {
|
||||||
let mut tmp: [u8; COUNT] = unsafe { MaybeUninit::uninit().assume_init() };
|
let mut tmp = [0u8; COUNT];
|
||||||
assert!(rand_bytes(&mut tmp).is_ok());
|
assert!(rand_bytes(&mut tmp).is_ok());
|
||||||
tmp
|
tmp
|
||||||
}
|
}
|
||||||
|
|
|
@ -326,7 +326,7 @@ pub mod v1 {
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn aes_gmac_siv_tag(&self) -> [u8; 16] {
|
pub fn aes_gmac_siv_tag(&self) -> [u8; 16] {
|
||||||
let mut id = unsafe { MaybeUninit::<[u8; 16]>::uninit().assume_init() };
|
let mut id = 0u128.to_ne_bytes();
|
||||||
id[0..8].copy_from_slice(&self.id);
|
id[0..8].copy_from_slice(&self.id);
|
||||||
id[8..16].copy_from_slice(&self.mac);
|
id[8..16].copy_from_slice(&self.mac);
|
||||||
id
|
id
|
||||||
|
@ -335,7 +335,7 @@ pub mod v1 {
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn get_packet_aad_bytes(destination: Address, source: Address, flags_cipher_hops: u8) -> [u8; 11] {
|
pub fn get_packet_aad_bytes(destination: Address, source: Address, flags_cipher_hops: u8) -> [u8; 11] {
|
||||||
let mut id = unsafe { MaybeUninit::<[u8; 11]>::uninit().assume_init() };
|
let mut id = [0u8; 11];
|
||||||
id[0..5].copy_from_slice(&destination.to_bytes());
|
id[0..5].copy_from_slice(&destination.to_bytes());
|
||||||
id[5..10].copy_from_slice(&source.to_bytes());
|
id[5..10].copy_from_slice(&source.to_bytes());
|
||||||
id[10] = flags_cipher_hops & FLAGS_FIELD_MASK_HIDE_HOPS;
|
id[10] = flags_cipher_hops & FLAGS_FIELD_MASK_HIDE_HOPS;
|
||||||
|
@ -530,7 +530,7 @@ pub mod v1 {
|
||||||
/// (including the verb) is returned.
|
/// (including the verb) is returned.
|
||||||
pub fn compress(payload: &mut [u8]) -> usize {
|
pub fn compress(payload: &mut [u8]) -> usize {
|
||||||
if payload.len() > 32 {
|
if payload.len() > 32 {
|
||||||
let mut tmp: [u8; 65536] = unsafe { MaybeUninit::uninit().assume_init() };
|
let mut tmp = [0u8; 65536];
|
||||||
if let Ok(mut compressed_size) = lz4_flex::block::compress_into(&payload[1..], &mut tmp) {
|
if let Ok(mut compressed_size) = lz4_flex::block::compress_into(&payload[1..], &mut tmp) {
|
||||||
if compressed_size < (payload.len() - 1) {
|
if compressed_size < (payload.len() - 1) {
|
||||||
payload[0] |= VERB_FLAG_COMPRESSED;
|
payload[0] |= VERB_FLAG_COMPRESSED;
|
||||||
|
|
|
@ -11,6 +11,7 @@ pub struct RingBuffer<T, const C: usize> {
|
||||||
impl<T, const C: usize> RingBuffer<T, C> {
|
impl<T, const C: usize> RingBuffer<T, C> {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
|
#[allow(invalid_value)]
|
||||||
let mut tmp: Self = unsafe { MaybeUninit::uninit().assume_init() };
|
let mut tmp: Self = unsafe { MaybeUninit::uninit().assume_init() };
|
||||||
tmp.p = 0;
|
tmp.p = 0;
|
||||||
tmp
|
tmp
|
||||||
|
|
|
@ -114,6 +114,7 @@ impl<K: Eq + PartialEq + Hash + Clone, V, const C: usize, const B: usize> RingBu
|
||||||
pub fn new(salt: u32) -> Self {
|
pub fn new(salt: u32) -> Self {
|
||||||
debug_assert!(C <= EMPTY as usize);
|
debug_assert!(C <= EMPTY as usize);
|
||||||
debug_assert!(B <= EMPTY as usize);
|
debug_assert!(B <= EMPTY as usize);
|
||||||
|
#[allow(invalid_value)]
|
||||||
let mut tmp: Self = unsafe { MaybeUninit::uninit().assume_init() };
|
let mut tmp: Self = unsafe { MaybeUninit::uninit().assume_init() };
|
||||||
// EMPTY is the maximum value of the indices, which is all 0xff, so this sets all indices to EMPTY.
|
// EMPTY is the maximum value of the indices, which is all 0xff, so this sets all indices to EMPTY.
|
||||||
unsafe { std::ptr::write_bytes(&mut tmp, 0xff, 1) };
|
unsafe { std::ptr::write_bytes(&mut tmp, 0xff, 1) };
|
||||||
|
|
Loading…
Add table
Reference in a new issue