Skip to content

Commit

Permalink
src: use S_ISDIR to check if the file is dir
Browse files Browse the repository at this point in the history
  • Loading branch information
theanarkh committed Mar 20, 2024
1 parent 4e9ce7c commit 85bd2b6
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/node_file.cc
Expand Up @@ -1049,7 +1049,7 @@ static void InternalModuleStat(const FunctionCallbackInfo<Value>& args) {
int rc = uv_fs_stat(env->event_loop(), &req, *path, nullptr);
if (rc == 0) {
const uv_stat_t* const s = static_cast<const uv_stat_t*>(req.ptr);
rc = !!(s->st_mode & S_IFDIR);
rc = S_ISDIR(s->st_mode);
}
uv_fs_req_cleanup(&req);

Expand Down Expand Up @@ -2854,7 +2854,7 @@ BindingData::FilePathIsFileReturnType BindingData::FilePathIsFile(

if (rc == 0) {
const uv_stat_t* const s = static_cast<const uv_stat_t*>(req.ptr);
rc = !!(s->st_mode & S_IFDIR);
rc = S_ISDIR(s->st_mode);
}

uv_fs_req_cleanup(&req);
Expand Down
2 changes: 1 addition & 1 deletion src/permission/fs_permission.cc
Expand Up @@ -20,7 +20,7 @@ std::string WildcardIfDir(const std::string& res) noexcept {
int rc = uv_fs_stat(nullptr, &req, res.c_str(), nullptr);
if (rc == 0) {
const uv_stat_t* const s = static_cast<const uv_stat_t*>(req.ptr);
if (s->st_mode & S_IFDIR) {
if ((s->st_mode & S_IFMT) == S_IFDIR) {
// add wildcard when directory
if (res.back() == node::kPathSeparator) {
return res + "*";
Expand Down
16 changes: 16 additions & 0 deletions test/parallel/test-fs-readdir-recursive.js
@@ -0,0 +1,16 @@
'use strict';
const common = require('../common');
const assert = require('assert');
const fs = require('fs');
const path = require('path');
const net = require('net');

const tmpdir = require('../common/tmpdir');
tmpdir.refresh();

const server = net.createServer().listen(common.PIPE, common.mustCall(() => {
// See https://github.com/nodejs/node/issues/52159
const files = fs.readdirSync(tmpdir.path, { recursive: true });
assert.deepStrictEqual(files, [path.basename(common.PIPE)]);
server.close();
}));

0 comments on commit 85bd2b6

Please sign in to comment.