Fix possible segmentation fault

This commit is contained in:
Niko 2024-01-03 20:26:08 -07:00
parent 2c0d6404b7
commit 5230735222
No known key found for this signature in database
GPG key ID: 3861E636EA1E0E2B
2 changed files with 7 additions and 0 deletions

View file

@ -39,6 +39,8 @@ pub enum WhisperError {
InvalidText,
/// Creating a state pointer failed. Check stderr for more information.
FailedToCreateState,
/// No samples were provided.
NoSamples,
}
impl From<Utf8Error> for WhisperError {

View file

@ -327,6 +327,11 @@ impl<'a> WhisperState<'a> {
/// # C++ equivalent
/// `int whisper_full(struct whisper_context * ctx, struct whisper_full_params params, const float * samples, int n_samples)`
pub fn full(&mut self, params: FullParams, data: &[f32]) -> Result<c_int, WhisperError> {
if data.is_empty() {
// can randomly trigger segmentation faults if we don't check this
return Err(WhisperError::NoSamples);
}
let ret = unsafe {
whisper_rs_sys::whisper_full_with_state(
self.ctx,