diff --git a/src/box/func.c b/src/box/func.c index 363e4ffb94b5cb3e89242dc85b447d5af9bc1d9c..119e58fa5de5dd1f804547006a00b2aa119d549e 100644 --- a/src/box/func.c +++ b/src/box/func.c @@ -492,6 +492,7 @@ func_c_destroy(struct func *base) assert(base != NULL && base->def->language == FUNC_LANGUAGE_C); struct func_c *func = (struct func_c *) base; func_c_unload(func); + TRASH(base); free(func); } @@ -577,8 +578,8 @@ void func_delete(struct func *func) { struct func_def *def = func->def; - func->vtab->destroy(func); credentials_destroy(&func->owner_credentials); + func->vtab->destroy(func); free(def); } diff --git a/src/box/lua/call.c b/src/box/lua/call.c index 92fdcb02dee17b28547f012c4618c76980ab12e8..b21be7fdaa45095ecb0cc4f40526e075b48ee61b 100644 --- a/src/box/lua/call.c +++ b/src/box/lua/call.c @@ -731,6 +731,7 @@ func_lua_destroy(struct func *func) { assert(func != NULL && func->def->language == FUNC_LANGUAGE_LUA); assert(func->vtab == &func_lua_vtab); + TRASH(func); free(func); }