Skip to content

Bug in onSymlink #1027

@znewsham

Description

@znewsham

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)) {

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions