From: | Hiroki Sato <hrs@xxxxxxxxxx> |
Date: | Mon, 27 Dec 2004 23:53:58 +0900 (JST) |
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
Description: PGP signature