• J
    file-posix: specify expected filetypes · 230ff739
    John Snow 提交于
    Adjust each caller of raw_open_common to specify if they are expecting
    host and character devices or not. Tighten expectations of file types upon
    open in the common code and refuse types that are not expected.
    
    This has two effects:
    
    (1) Character and block devices are now considered deprecated for the
        'file' driver, which expects only S_IFREG, and
    (2) no file-posix driver (file, host_cdrom, or host_device) can open
        directories now.
    
    I don't think there's a legitimate reason to open directories as if
    they were files. This prevents QEMU from opening and attempting to probe
    a directory inode, which can break in exciting ways. One of those ways
    is lseek on ext4/xfs, which will return 0x7fffffffffffffff as the file
    size instead of EISDIR. This can coax QEMU into responding with a
    confusing "file too big" instead of "Hey, that's not a file".
    
    See: https://bugs.launchpad.net/qemu/+bug/1739304/Signed-off-by: NJohn Snow <jsnow@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    230ff739
qemu-doc.texi 98.0 KB