@@ -700,7 +700,6 @@
if (this.name[1] != '.')
break;
follow_dotdot(&nd->mnt, &nd->dentry);
- inode = nd->dentry->d_inode;
/* fallthrough */
case 1:
goto return_base;
seems broken to me. if follow_dotdot() changes nd->dentry (can happen!),
inode needs to be changed. look:
inode = nd->dentry->d_inode;
for(;;) {
err = exec_permission_lite(inode);
if (this.name[0] == '.') switch (this.len) {
case 2:
if (this.name[1] != '.')
break;
follow_dotdot(&nd->mnt, &nd->dentry);
inode = nd->dentry->d_inode;
/* fallthrough */
case 1:
continue;
}
}
btw, you should cc linux-fsdevel for patches to the VFS.
-- "It's not Hollywood. War is real, war is primarily not about defeat or victory, it is about death. I've seen thousands and thousands of dead bodies. Do you think I want to have an academic debate on this subject?" -- Robert Fisk - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sat Dec 07 2002 - 22:00:26 EST