Bug ID | 986935 |
---|---|
Summary | findutils: -exec + does not pass all arguments for certain specific filename lengths |
Classification | openSUSE |
Product | openSUSE Distribution |
Version | Leap 42.1 |
Hardware | Other |
OS | Other |
Status | NEW |
Severity | Normal |
Priority | P5 - None |
Component | Basesystem |
Assignee | pth@suse.com |
Reporter | astieger@suse.com |
QA Contact | qa-bugs@suse.de |
CC | bbrunner@suse.com, mail@bernhard-voelker.de, maintenance@opensuse.org, pth@suse.com |
Found By | Community User |
Blocker | --- |
find -exec + does not pass all arguments for certain specific filename lengths https://savannah.gnu.org/bugs/?48030 Reproduction script from https://savannah.gnu.org/bugs/?48030#comment1 $ mkdir RashuBug $ for i in $(seq -f "%04g" 901) ; do touch RashuBug/abcdefghijklmnopqrstuv$i ; done $ for i in $(seq -f "%04g" 902 3719) ; do touch RashuBug/abcdefghijklmnopqrstu$i ; done $ ls RashuBug/* | wc -l 3719 # Number of files we have created in directory ## Now create an echo command which is 6 characters long $ ln -s /bin/echo /bin/echooo # as root ## See the difference in the output of the following two commands $ find RashuBug -type f -exec echo {} + | tr ' ' '\n' | wc -l 3719 # Correct answer $ find RashuBug -type f -exec echooo {} + | tr ' ' '\n' | wc -l 3718 # Wrong answer (Last file went missing!) Fix commit: http://git.savannah.gnu.org/cgit/findutils.git/commit/?id=8cdc9767e3