-
Couldn't load subscription status.
- Fork 779
Open
Labels
Description
There is a bug when copying a directory containing a symlink onto itself (e.g., if you were making an rsync type utility):
If options.dereference is not set, then resolvedSrc and resolvedDest will always be equal - since they are the value of the symlink.
if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`))
}
this code needs to be changed to
if (options.dereference && stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
Probably a similar change is required here:
if (destStat.isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) {