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

[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: