readdirSyncRecursive: follow symlinks only if we haven't read the destination yet
Fix an issue whre readdirSyncRecursive will get into infinite loop for circular symlinks. Note: fix to readdirRecursive is also needed.
This commit is contained in:
parent
13f486d867
commit
feddabd57b
1 changed files with 7 additions and 0 deletions
|
|
@ -23,7 +23,14 @@ var fs = require("fs"),
|
||||||
exports.readdirSyncRecursive = function(baseDir) {
|
exports.readdirSyncRecursive = function(baseDir) {
|
||||||
baseDir = baseDir.replace(/\/$/, '');
|
baseDir = baseDir.replace(/\/$/, '');
|
||||||
|
|
||||||
|
var checkedInodes = {};
|
||||||
var readdirSyncRecursive = function(baseDir) {
|
var readdirSyncRecursive = function(baseDir) {
|
||||||
|
var inode = fs.statSync(baseDir).ino;
|
||||||
|
if (inode in checkedInodes) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
checkedInodes[inode] = true;
|
||||||
|
|
||||||
var files = [],
|
var files = [],
|
||||||
curFiles,
|
curFiles,
|
||||||
nextDirs,
|
nextDirs,
|
||||||
|
|
|
||||||
Reference in a new issue