Skip to content

fs: Fix lock leak in replace_fd()#1441

Open
vfsci-bot[bot] wants to merge 1 commit into
vfs.base.cifrom
pw/1098526/vfs.base.ci
Open

fs: Fix lock leak in replace_fd()#1441
vfsci-bot[bot] wants to merge 1 commit into
vfs.base.cifrom
pw/1098526/vfs.base.ci

Conversation

@vfsci-bot
Copy link
Copy Markdown

@vfsci-bot vfsci-bot Bot commented May 21, 2026

Series: https://patchwork.kernel.org/project/linux-fsdevel/list/?series=1098526
Submitter: Hongling Zeng
Version: 1
Patches: 1/1
Message-ID: <20260521074934.49256-1-zenghongling@kylinos.cn>
Base: vfs.base.ci
Lore: https://lore.kernel.org/linux-fsdevel/20260521074934.49256-1-zenghongling@kylinos.cn


Automated by ml2pr

In replace_fd(), the function acquires files->file_lock but then has
two return paths that don't release the lock:
- When do_dup2() fails (returns negative error)
- When do_dup2() succeeds (returns 0)

Both of these paths return directly without unlocking files->file_lock,
causing a lock leak and potential deadlock.

Fix this by making both error and success paths go through the
out_unlock label to ensure the lock is always released.

Fixes: 708c04a ("fs: always return zero on success from replace_fd()")
Cc: stable@vger.kernel.org
Signed-off-by: Hongling Zeng <zenghongling@kylinos.cn>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant