• Arnd Bergmann's avatar
    isofs: use unsigned char types consistently · cb917757
    Arnd Bergmann authored
    Based on the discussion about the signed character field for the year,
    I went through all fields in the iso9660 and rockridge standards to see
    whether they should used signed or unsigned characters. Only a single
    8-bit value is defined as signed per 'section 7.1.2': the timezone
    offset in a timestamp, this has always been handled correctly through
    explicit sign-extension.
    
    All others are either '7.1.1 8-bit unsigned numerical values' or
    composite fields. I also read the linux source code and came to the
    same conclusion, also I could not find any other part of the
    implementation that actually behaves differently for signed or
    unsigned values.
    
    Since it is still ambigous to use plain 'char' in interface definitions,
    I'm changing all fields representing numbers and reserved bytes to
    the unambiguous '__u8'. Fields that hold actual strings are left as
    'char' arrays. I built the code with '-Wpointer-sign -Wsign-compare'
    to see if anything got left out, but couldn't find anything wrong
    with the remaining warnings.
    
    This patch should not change runtime behavior and does not need to
    be backported.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    cb917757
isofs.h 6.35 KB