Fix possible segfault in C API. (#1059)

This commit is contained in:
Fangjun Kuang
2024-06-26 09:57:19 +08:00
committed by GitHub
parent dfca4500aa
commit 03ebdf3fc6

View File

@@ -222,7 +222,7 @@ const SherpaOnnxOnlineRecognizerResult *GetOnlineStreamResult(
} }
r->tokens_arr = tokens_temp; r->tokens_arr = tokens_temp;
if (!result.timestamps.empty()) { if (!result.timestamps.empty() && result.timestamps.size() == r->count) {
r->timestamps = new float[r->count]; r->timestamps = new float[r->count];
std::copy(result.timestamps.begin(), result.timestamps.end(), std::copy(result.timestamps.begin(), result.timestamps.end(),
r->timestamps); r->timestamps);
@@ -490,7 +490,7 @@ const SherpaOnnxOfflineRecognizerResult *GetOfflineStreamResult(
} }
r->tokens_arr = tokens_temp; r->tokens_arr = tokens_temp;
if (!result.timestamps.empty()) { if (!result.timestamps.empty() && result.timestamps.size() == r->count) {
r->timestamps = new float[r->count]; r->timestamps = new float[r->count];
std::copy(result.timestamps.begin(), result.timestamps.end(), std::copy(result.timestamps.begin(), result.timestamps.end(),
r->timestamps); r->timestamps);