rmdir(2) behavior to prevent pax(1) from working
    Hiroki Sato 
    hrs at allbsd.org
       
    Mon Dec 27 07:09:25 PST 2004
    
    
  
Hi,
 I notice that the current rmdir(2) implementation allows
 rmdir(2) to remove a directory path whose final component is
 either "." or ".." (such as /tmp/foo/bar/.).
 This sounds no problem, but the pax(1) utility depends on this
 behavior at least.  Try the following commands:
  % cd /tmp
  % mkdir a b
  % touch a/foo
  % cd a
  % pax -r -w . ../b
 In this case pax(1) should go into a infinite loop.
 The SUSv3 also says "If the path argument refers to a path
 whose final component is either dot or dot-dot, rmdir() shall fail."
 so I think it is better to be fixed.
 Probably kern_rmdir() @ sys/kern/vfs_syscalls.c needs
 some sort of sanity check for the trailing "." and "..",
 but unfortunately I have no idea about a concrete solution because
 I am not familiar with the new VFS/namecache API...
 Could anyone investigate this problem?
-- 
| Hiroki SATO
Attachment:
pgp00006.pgp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgp00006.pgp
Type: application/octet-stream
Size: 187 bytes
Desc: "Description: PGP signature"
URL: <http://lists.dragonflybsd.org/pipermail/kernel/attachments/20041227/dd54930e/attachment-0014.obj>
    
    
More information about the Kernel
mailing list