mirror of
https://github.com/ggerganov/whisper.cpp.git
synced 2025-04-18 16:28:33 +02:00
whisper : fix potential memory leaks (#740)
* fix potential memory leak if whisper_init_state failed * fix potential memory leak if gpt2_init failed
This commit is contained in:
parent
7727a40dc9
commit
2c856fb9e5
@ -841,6 +841,7 @@ struct gpt2_context * gpt2_init(const char * path_model) {
|
|||||||
|
|
||||||
if (!gpt2_model_load(path_model, ctx->model, ctx->vocab)) {
|
if (!gpt2_model_load(path_model, ctx->model, ctx->vocab)) {
|
||||||
fprintf(stderr, "%s: failed to load model from '%s'\n", __func__, "gpt-2.bin");
|
fprintf(stderr, "%s: failed to load model from '%s'\n", __func__, "gpt-2.bin");
|
||||||
|
delete ctx;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2487,6 +2487,7 @@ struct whisper_state * whisper_init_state(whisper_context * ctx) {
|
|||||||
|
|
||||||
if (!kv_cache_init(ctx->model.hparams, scale * MEM_REQ_KV_SELF.at(ctx->model.type), state->decoders[0].kv_self, ctx->wtype, ctx->model.hparams.n_text_ctx)) {
|
if (!kv_cache_init(ctx->model.hparams, scale * MEM_REQ_KV_SELF.at(ctx->model.type), state->decoders[0].kv_self, ctx->wtype, ctx->model.hparams.n_text_ctx)) {
|
||||||
fprintf(stderr, "%s: kv_cache_init() failed for self-attention cache\n", __func__);
|
fprintf(stderr, "%s: kv_cache_init() failed for self-attention cache\n", __func__);
|
||||||
|
delete state;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2497,6 +2498,7 @@ struct whisper_state * whisper_init_state(whisper_context * ctx) {
|
|||||||
|
|
||||||
if (!kv_cache_init(ctx->model.hparams, scale * MEM_REQ_KV_CROSS.at(ctx->model.type), state->kv_cross, ctx->wtype, ctx->model.hparams.n_audio_ctx)) {
|
if (!kv_cache_init(ctx->model.hparams, scale * MEM_REQ_KV_CROSS.at(ctx->model.type), state->kv_cross, ctx->wtype, ctx->model.hparams.n_audio_ctx)) {
|
||||||
fprintf(stderr, "%s: kv_cache_init() failed for cross-attention cache\n", __func__);
|
fprintf(stderr, "%s: kv_cache_init() failed for cross-attention cache\n", __func__);
|
||||||
|
delete state;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user