[busybox cp] Bug city and the symlink farm.
With the diff I presented applied, I tried the following:
First, I used GNU cp to make a symlink farm.
karlheg@bittersweet:/usr/local/src/test/symlinkfarm
% cp --symbolic-link ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/* .
cp: ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/CVS: omitting directory
cp: ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/docs: omitting directory
cp: ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/scripts: omitting directory
Exit Status: [0]
karlheg@bittersweet:/usr/local/src/test/symlinkfarm
% ls -l
total 624
lrwxrwxrwx 1 karlheg karlheg 72 Jan 24 23:23 AUTHORS -> ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/AUTHORS
lrwxrwxrwx 1 karlheg karlheg 78 Jan 24 23:23 ChangeLog.kmh -> ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/ChangeLog.kmh
[ ... ]
lrwxrwxrwx 1 karlheg karlheg 73 Jan 24 23:23 whoami.c -> ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/whoami.c
lrwxrwxrwx 1 karlheg karlheg 70 Jan 24 23:23 yes.c -> ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/yes.c
Then I played with busybox
karlheg@bittersweet:/usr/local/src/test/symlinkfarm
% cd ..
karlheg@bittersweet:/usr/local/src/test
% mkdir symlinkfarm2
karlheg@bittersweet:/usr/local/src/test
% ../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/cp -a symlinkfarm/* symlinkfarm2/
karlheg@bittersweet:/usr/local/src/test
% ls -l symlinkfarm2
total 624
lrwxrwxrwx 1 karlheg karlheg 72 Jan 24 23:36 AUTHORS -> ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/AUTHORS
lrwxrwxrwx 1 karlheg karlheg 78 Jan 24 23:36 ChangeLog.kmh -> ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/ChangeLog.kmh
[ ... ]
lrwxrwxrwx 1 karlheg karlheg 73 Jan 24 23:36 whoami.c -> ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/whoami.c
lrwxrwxrwx 1 karlheg karlheg 70 Jan 24 23:36 yes.c -> ../../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/yes.c
Ok, no problem... but look at this! It set the x bit on all of the
files in `busybox/'!
karlheg@bittersweet:/usr/local/src/test
% ls -l ../cvs.debian.org/debian-boot/boot-floppies/utilities/busybox/
total 2320
-rwxrwxrwx 1 karlheg karlheg 1052 Jan 24 23:23 AUTHORS
drw-rw-r-- 2 karlheg karlheg 4096 Jan 24 22:55 CVS
-rwxrwxrwx 1 karlheg karlheg 172 Jan 24 23:23 ChangeLog.kmh
-rwxrwxrwx 1 karlheg karlheg 18480 Jan 24 23:23 Changelog
[ ... ]
-rwxrwxrwx 1 karlheg karlheg 3765 Jan 24 23:23 wc.c
-rwxrwxrwx 1 karlheg karlheg 1343 Jan 24 23:23 whoami.c
-rwxrwxrwx 1 karlheg karlheg 1202 Jan 24 23:23 yes.c
karlheg@bittersweet:/usr/local/src/test
%
I verified that it does the same thing with or without the patch
applied. I'll go back in now and see if I can find out why it does
that.
Reply to: