do_filp_open fails to detect dentry revalidate of 1 and crashes

From: jmerkey
Date: Thu Oct 02 2008 - 02:54:23 EST



On assignment of a negative dentry, do_filp_open will crash with an oops
in do_sys_open because do_filp_open returns "1" from revalidate rather
than properly detect a negative dentry which has a dentry revalidate
function before the file actually exists.


Easy to reproduce. Create negative dentry and attach a revalidate
function which returns 1 instead of 0 on non-existent file entry. The
convoluted code in do_filp_open does not detect dentry errors in all cases
properly.

Jeff

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/