From 323c43e1c43177d836121336267fbe2fd51cbd65 Mon Sep 17 00:00:00 2001 From: Horror Proton <107091537+horror-proton@users.noreply.github.com> Date: Tue, 14 Jan 2025 00:43:33 +0800 Subject: [PATCH] fix(treesitter): uv_dlclose after uv_dlerror (cherry picked from commit 5a54681025ec28129c21c875943a3f9c37959f75) --- src/nvim/lua/treesitter.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/nvim/lua/treesitter.c b/src/nvim/lua/treesitter.c index 086315db69..b305a09dcb 100644 --- a/src/nvim/lua/treesitter.c +++ b/src/nvim/lua/treesitter.c @@ -67,9 +67,9 @@ static TSLanguage *load_language(lua_State *L, const char *path, const char *lan { uv_lib_t lib; if (uv_dlopen(path, &lib)) { + xstrlcpy(IObuff, uv_dlerror(&lib), sizeof(IObuff)); uv_dlclose(&lib); - luaL_error(L, "Failed to load parser for language '%s': uv_dlopen: %s", - lang_name, uv_dlerror(&lib)); + luaL_error(L, "Failed to load parser for language '%s': uv_dlopen: %s", lang_name, IObuff); } char symbol_buf[128]; @@ -77,8 +77,9 @@ static TSLanguage *load_language(lua_State *L, const char *path, const char *lan TSLanguage *(*lang_parser)(void); if (uv_dlsym(&lib, symbol_buf, (void **)&lang_parser)) { + xstrlcpy(IObuff, uv_dlerror(&lib), sizeof(IObuff)); uv_dlclose(&lib); - luaL_error(L, "Failed to load parser: uv_dlsym: %s", uv_dlerror(&lib)); + luaL_error(L, "Failed to load parser: uv_dlsym: %s", IObuff); } TSLanguage *lang = lang_parser();