[Bug 276632] LLVM std::filesystem::remove_all fails to handle dangling symlinks

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 29 Jan 2024 17:29:04 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276632

--- Comment #3 from commit-hook@FreeBSD.org ---
A commit in branch main references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=ee14a9725d73150e89367550206803fe36ae3089

commit ee14a9725d73150e89367550206803fe36ae3089
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-01-29 17:26:48 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-01-29 17:26:48 +0000

    Merge commit 4a39d0890894 from llvm-project (by Mark Johnston):

      [libc++] Fix filesystem::remove_all() on FreeBSD (#79540)

      remove_all_impl() opens the target path with O_NOFOLLOW, which fails if
      the target is a symbolic link. On FreeBSD, rather than returning ELOOP,
      openat() returns EMLINK. This is unlikely to change for compatibility
      reasons, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214633 .

      Thus, check for EMLINK as well.

    Reported by:    markj
    PR:             276632
    MFC after:      3 days

 contrib/llvm-project/libcxx/src/filesystem/operations.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

-- 
You are receiving this mail because:
You are the assignee for the bug.