fixed potential buffer overflow & added vec_znx_normalize_tmp_bytes
Jean-Philippe Bossuat jeanphilippe.bossuat@gmail.com
Tue, 25 Feb 2025 10:15:27 +0100
2 files changed,
10 insertions(+),
0 deletions(-)
M
base2k/src/vec_znx.rs
→
base2k/src/vec_znx.rs
@@ -469,6 +469,7 @@
pub trait VecZnxCommon: VecZnxApi + Infos {} pub trait VecZnxOps { + /// Allocates a new [VecZnx]. /// /// # Arguments@@ -479,6 +480,8 @@
/// Returns the minimum number of bytes necessary to allocate /// a new [VecZnx] through [VecZnx::from_bytes]. fn bytes_of_vec_znx(&self, cols: usize) -> usize; + + fn vec_znx_normalize_tmp_bytes(&self) -> usize; /// c <- a + b. fn vec_znx_add<A: VecZnxCommon, B: VecZnxCommon, C: VecZnxCommon>(@@ -555,6 +558,12 @@ }
fn bytes_of_vec_znx(&self, cols: usize) -> usize { self.n() * cols * 8 + } + + fn vec_znx_normalize_tmp_bytes(&self) -> usize{ + unsafe{ + vec_znx::vec_znx_normalize_tmp_bytes(self.0) as usize + } } // c <- a + b
M
base2k/src/vmp.rs
→
base2k/src/vmp.rs
@@ -439,6 +439,7 @@ }
} fn vmp_prepare_row(&self, b: &mut VmpPMat, a: &[i64], row_i: usize, buf: &mut [u8]) { + debug_assert!(a.len() == b.cols() * self.n()); unsafe { vmp::vmp_prepare_row( self.0,