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


You are receiving this mail because: