diff options
| author | Yuval Adam <_@yuv.al> | 2022-07-24 12:11:24 +0300 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2022-07-24 12:11:24 +0300 |
| commit | 9d749ec3e82bfad1964ed0bf4f0e31d1b93b30fe (patch) | |
| tree | 4a868428f8b510c51cc52e139ec2833129f9de8b | |
| parent | 56635c5677a85c10f83e25553dc7a3a9cd2e8c24 (diff) | |
Add buffer size safety checks
| -rw-r--r-- | libcodec2/src/lib.rs | 8 |
1 files changed, 8 insertions, 0 deletions
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 _); } |
