GNU bug report logs -
#62607
cp --recursive --backup broken in 9.2
Previous Next
Full log
Message #8 received at 62607 <at> debbugs.gnu.org (full text, mbox):
On 01/04/2023 23:40, Kristian Klausen via GNU coreutils Bug Reports wrote:
> Hi
>
> After upgrading to coreutils 9.2-2 on Arch Linux the following:
> mkdir -p src dst
> touch {src,dst}/bar
> cp --recursive --backup src/* dst
> fails with:
> cp: cannot create regular file 'dst/foo/bar': File exists
>
> Running strace on cp I noticed:
> renameat2(4, "foo/bar", 4, "foo/bar~", 0) = -1 ENOENT (No such file or
> directory)
>
> In coreutils 9.1-3 the syscall succeeds:
> renameat2(4, "bar", 4, "bar~", 0) = 0
>
> I assume renameat2 is called with the wrong oldpath and newpath in 9.2
> and that it should just be the basename and not the full relative path.
>
> Cheers
> Kristian Klausen
Your analysis is correct wrt the wrong paths being given to the renameat2().
This is related to https://bugs.gnu.org/55029
For completeness the correct repro is:
mkdir -p {src,dst}/foo
touch {src,dst}/foo/bar
cp --recursive --backup src/* dst
thanks,
Pádraig
This bug report was last modified 2 years and 112 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.