From 9d749ec3e82bfad1964ed0bf4f0e31d1b93b30fe Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Sun, 24 Jul 2022 12:11:24 +0300 Subject: Add buffer size safety checks --- libcodec2/src/lib.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libcodec2/src/lib.rs b/libcodec2/src/lib.rs index 5ce7850..9becb47 100644 --- a/libcodec2/src/lib.rs +++ b/libcodec2/src/lib.rs @@ -30,6 +30,14 @@ impl Codec2 { /// Encode an array of speech samples into an array of bits pub fn encode(&self, speech: &[i16], bits: &mut [u8]) { + let nsamples = self.samples_per_frame(); + let nbits = self.bytes_per_frame(); + if bits.len() != nsamples { + panic!("Samples buffer must be of length {}", nsamples); + } + if speech.len() != nbits { + panic!("Speech buffer must be of length {}", nsamples); + } unsafe { ffi::codec2_encode(self.0, bits.as_ptr() as *mut _, speech.as_ptr() as *mut _); } -- cgit v1.3.1