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

看板DFBSD_kernel作者時間21年前 (2004/12/28 04:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
: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
文章代碼(AID): #11q75800 (DFBSD_kernel)
文章代碼(AID): #11q75800 (DFBSD_kernel)