[BusyBox 0001412]: "cp -a" allows copy of a directory into itself

bugs at busybox.net bugs at busybox.net
Fri Jun 29 16:46:16 UTC 2007


A NOTE has been added to this issue. 
====================================================================== 
http://busybox.net/bugs/view.php?id=1412 
====================================================================== 
Reported By:                kiltedknight
Assigned To:                BusyBox
====================================================================== 
Project:                    BusyBox
Issue ID:                   1412
Category:                   Other
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     assigned
====================================================================== 
Date Submitted:             06-29-2007 09:16 PDT
Last Modified:              06-29-2007 09:46 PDT
====================================================================== 
Summary:                    "cp -a" allows copy of a directory into itself
Description: 
execute the following series of commands on GNU linux:

mkdir /tmp/dir1
touch /tmp/dir1/stuff
cp -a /tmp/dir1 /tmp/dir1

The following error is returned: cp: cannot copy a directory, `/tmp/dir1',
into itself, `/tmp/dir1/dir1'

Now run these:

mkdir /tmp/dir1
touch /tmp/dir1/stuff
busybox cp -a /tmp/dir1 /tmp/dir1

Now you get the following:
cp: cannot stat
'/tmp/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1/dir1':
File name too long

====================================================================== 

---------------------------------------------------------------------- 
 vapier - 06-29-07 09:22  
---------------------------------------------------------------------- 
i wouldnt really call this a bug ... i'd say "dont do it" 

---------------------------------------------------------------------- 
 kiltedknight - 06-29-07 09:28  
---------------------------------------------------------------------- 
Yeah, but you never know what a script will attempt at some point. 

---------------------------------------------------------------------- 
 vapier - 06-29-07 09:36  
---------------------------------------------------------------------- 
regardless of what a script does, you're going to end up with errors that
someone needs to go in and clean/fix ... what exact form that error takes
i think is irrelevant 

---------------------------------------------------------------------- 
 kiltedknight - 06-29-07 09:46  
---------------------------------------------------------------------- 
Except that this isn't just an error.  It actually recursively copies the
directories.  GNU Linux cp does not.  It does it one time and exits with
the error. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
06-29-07 09:16  kiltedknight   New Issue                                    
06-29-07 09:16  kiltedknight   Status                   new => assigned     
06-29-07 09:16  kiltedknight   Assigned To               => BusyBox         
06-29-07 09:22  vapier         Note Added: 0002534                          
06-29-07 09:28  kiltedknight   Note Added: 0002535                          
06-29-07 09:28  kiltedknight   Issue Monitored: kiltedknight                    
06-29-07 09:36  vapier         Note Added: 0002536                          
06-29-07 09:46  kiltedknight   Note Added: 0002537                          
======================================================================




More information about the busybox-cvs mailing list