Skip to content

Merging a folder / file, with its own symlink deletes contents irreversibly #3609

@marshy719

Description

@marshy719

Distribution

22.2

Package version

6.4.5

Frequency

Always

Bug description

So today, out of curiosity, I made a "black hole" within Nemo. I made a folder, and a file within it, then made a symbolic link to that exact same folder. Then, I moved that symlinked folder next to the regular non-symlinked folder, and Nemo asked me whether I want to merge it, so I pressed on merge. And boom, the dummy files and folder was all nuked into nothingness, since the symlink (destination) replaced it's own original (source). Not even undoing will bring the folders/files back.

There should be a failsafe mechanism, so that Nemo would check against the user action whether is about to move the same symlinked folder next to the original, and prevent this happening (KDE's Dolphin has it already)

Made a video for better representation of this scenario:
https://github.com/user-attachments/assets/abe74f82-9642-416a-9e11-a235caa0a7e0

Steps to reproduce

Create a folder, and a file under it. Now make a symbolic link of this folder, to elsewhere not the same folder level to this original folder. Now go out to the symlinked folder, and cut (or copy) - paste into the same level folder where the original folder resides, and when Nemo asks, merge it (Please do this test with dummy files, not actual files, as it will wipe itself out, and nothing will be able to bring it back)

Expected behavior

Should warn or even better, disallow user from this potentially unsafe step.

Additional information

Please make a failsafe mechanism, and make Nemo to check against these kind of scenarios, when a user is about to merge/replace the original folder/file with its own symlinked folder/file respectively

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions