DragonFly BSD
DragonFly kernel List (threaded) for 2004-12
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: rmdir(2) behavior to prevent pax(1) from working


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 27 Dec 2004 12:01:45 -0800 (PST)

: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

    Hmm.  I think this was an artifact introduced by the new VFS code.  It 
    should be easy to fix.  I'll have a go at it today.

					-Matt



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