On Thu, 03.03.11 18:27, Andrey Borzenkov ([email protected]) wrote: > Some file systems (at least, reiserfs) return DT_UNKNOWN for > every directory entry in readdir(). So far in several places > systemd filtered on DT_REG/DT_LNK and so skipped any file on > such filesystems. It affected systemd-update-utmp, systemd-modules-load > and systemd-tty-ask-password-agent. > > This patch adds additional stat() check for file type for DT_UNKNOWN > case. Additionally, it adds check that DT_LNK really points to > regular file. > > The patch fixes misterious runlevel entry in utmp discussed in > http://lists.freedesktop.org/archives/systemd-devel/2011-March/001433.html
OOps, sorry. already applied a simpler fix before I saw this patch of yours. I think it is acceptable to skip these checks if the underlying fs doesn't make them cheap. Doing an explicit stat() in case of DT_UNKNOWN buys us very little since stat() plus open() is still vulnerable to races. So, I think the simple fix that is in right now is already more than enough. Especially since those dirs are actually root-only writable, hence not super security sensitive. Lennart -- Lennart Poettering - Red Hat, Inc. _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
