coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 'cp' now uses openat etc. when copying to directories


From: Paul Eggert
Subject: Re: 'cp' now uses openat etc. when copying to directories
Date: Sat, 15 Jan 2022 12:27:30 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.1

On 1/15/22 11:55, Bernhard Voelker wrote:

yep, `make check-very-expensive` fails due to 3x segmentation faults:

   FAIL: tests/cp/cp-parents
   FAIL: tests/cp/parent-perm-race
   FAIL: tests/mv/hard-3

Yes, I think these were due to the fact that my initial tests used GCC with optimization levels so high that GCC optimized the bugs away (!). I installed commit f39a02a744ae97f6879ba1d20a528192772773e0 to try to fix the bugs.

Furthermore, 'make syntax-check' complains about:

   prohibit_readlink
   src/copy.c:1266:          if (0 <= readlinkat (dst_dirfd, dst_relname, 
dummy, sizeof dummy))
   maint.mk: do not use readlink(at); use via xreadlink or areadlink*
   make: *** [cfg.mk:446: sc_prohibit_readlink] Error 1

Thanks for mentioning that. I think this syntax-check is too strict, as I've found that it's useful to invoke readlinkat with a 1-byte destination buffer if one merely wants to test whether a file is a symbolic link and does not care where it points to. This approach can be better than fstatat since it needn't worry about EOVERFLOW issues. So I installed the attached to remove the check.

Attachment: 0001-build-allow-readlinkat-calls.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]