• Masahiro Yamada's avatar
    modpost: avoid false-positive file open error · 7c8f5662
    Masahiro Yamada authored
    One problem of grab_file() is that it cannot distinguish the following
    two cases:
    
     - It cannot read the file (the file does not exist, or read permission
       is not set)
    
     - It can read the file, but the file size is zero
    
    This is because grab_file() calls mmap(), which requires the mapped
    length is greater than 0. Hence, grab_file() fails for both cases.
    
    If an empty header file were included for checksum calculation, the
    following warning would be printed:
    
      WARNING: modpost: could not open ...: Invalid argument
    
    An empty file is a valid source file, so it should not fail.
    
    Use read_text_file() instead. It can read a zero-length file.
    Then, parse_file() will succeed with doing nothing.
    
    Going forward, the first case (it cannot read the file) is a fatal
    error. If the source file from which an object was compiled is missing,
    something went wrong.
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    7c8f5662
sumversion.c 9.74 KB