[libvirt] [PATCH] virDirRead: Fix d_type if needed

Daniel P. Berrangé berrange at redhat.com
Tue Apr 2 12:26:40 UTC 2019


On Tue, Apr 02, 2019 at 02:17:35PM +0200, Michal Privoznik wrote:
> Some of our code iterates over a directory and does some
> decisions based on entry type (e.g. if it's not a regular file
> continue with next iteration). This is done by looking at
> ent->d_type struct member. However, in some cases (e.g. for some
> filesystems) the d_type can be set to DT_UNKNOWN which
> effectively defeats the aforementioned checks. For instance, some
> XFS' (depending on how they were created) might not bother
> filling the member.
> 
> Fix this by running stat() and filling in the member ourselves.
> If needed.

We really don't want to do this. It adds an extra syscall for every
single file in the directory. I've got an alternative patch that
simply puts a stat call into the firmware code & also adds a syntax
check rule to blacklist use of d_type.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list