From 7fd9e0b834540aff7a8fb328ea57823964912dac Mon Sep 17 00:00:00 2001 From: RafaelGSS Date: Tue, 6 Oct 2026 06:33:04 -0300 Subject: [PATCH 1/2] src: release uv_fs_t in permission WildcardIfDir Call uv_fs_req_cleanup() before returning for directories, otherwise the path buffer allocated by uv_fs_stat() leaks on Windows. Signed-off-by: RafaelGSS --- src/permission/fs_permission.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/permission/fs_permission.cc b/src/permission/fs_permission.cc index fd3b159f579b..b2ede1869300 100644 --- a/src/permission/fs_permission.cc +++ b/src/permission/fs_permission.cc @@ -16,17 +16,17 @@ namespace { std::string WildcardIfDir(const std::string& res) noexcept { uv_fs_t req; int rc = uv_fs_stat(nullptr, &req, res.c_str(), nullptr); - if (rc == 0) { - const uv_stat_t* const s = static_cast(req.ptr); - if ((s->st_mode & S_IFMT) == S_IFDIR) { - // add wildcard when directory - if (res.back() == node::kPathSeparator) { - return res + "*"; - } - return res + node::kPathSeparator + "*"; + const bool is_dir = + rc == 0 && (static_cast(req.ptr)->st_mode & S_IFMT) == + S_IFDIR; + uv_fs_req_cleanup(&req); + if (is_dir) { + // add wildcard when directory + if (res.back() == node::kPathSeparator) { + return res + "*"; } + return res + node::kPathSeparator + "*"; } - uv_fs_req_cleanup(&req); return res; } From 367ef6c317539bc40a56d5c49da24d3a069adef8 Mon Sep 17 00:00:00 2001 From: RafaelGSS Date: Tue, 6 Oct 2026 07:50:45 -0300 Subject: [PATCH 2/2] src: format WildcardIfDir in fs_permission.cc Signed-off-by: RafaelGSS --- src/permission/fs_permission.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/permission/fs_permission.cc b/src/permission/fs_permission.cc index b2ede1869300..6293844476f3 100644 --- a/src/permission/fs_permission.cc +++ b/src/permission/fs_permission.cc @@ -17,8 +17,8 @@ std::string WildcardIfDir(const std::string& res) noexcept { uv_fs_t req; int rc = uv_fs_stat(nullptr, &req, res.c_str(), nullptr); const bool is_dir = - rc == 0 && (static_cast(req.ptr)->st_mode & S_IFMT) == - S_IFDIR; + rc == 0 && + (static_cast(req.ptr)->st_mode & S_IFMT) == S_IFDIR; uv_fs_req_cleanup(&req); if (is_dir) { // add wildcard when directory