• Gustavo A. R. Silva's avatar
    udf: Fix -Wstringop-overflow warnings · ca97f7e5
    Gustavo A. R. Silva authored
    Use unsigned type in call to macro mint_t(). This avoids confusing the
    compiler about possible negative values that would cause the value in
    _len_ to wrap around.
    
    Fixes the following -Wstringop-warnings seen when building ARM
    architecture with allyesconfig (GCC 13):
    fs/udf/directory.c: In function 'udf_copy_fi':
    include/linux/fortify-string.h:57:33: warning: '__builtin_memcpy' specified bound between 2147483648 and 4294967295 exceeds maximum object size 2147483647 [-Wstringop-overflow=]
       57 | #define __underlying_memcpy     __builtin_memcpy
          |                                 ^
    include/linux/fortify-string.h:648:9: note: in expansion of macro '__underlying_memcpy'
      648 |         __underlying_##op(p, q, __fortify_size);                        \
          |         ^~~~~~~~~~~~~
    include/linux/fortify-string.h:693:26: note: in expansion of macro '__fortify_memcpy_chk'
      693 | #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
          |                          ^~~~~~~~~~~~~~~~~~~~
    fs/udf/directory.c:99:9: note: in expansion of macro 'memcpy'
       99 |         memcpy(&iter->fi, iter->bh[0]->b_data + off, len);
          |         ^~~~~~
    include/linux/fortify-string.h:57:33: warning: '__builtin_memcpy' specified bound between 2147483648 and 4294967295 exceeds maximum object size 2147483647 [-Wstringop-overflow=]
       57 | #define __underlying_memcpy     __builtin_memcpy
          |                                 ^
    include/linux/fortify-string.h:648:9: note: in expansion of macro '__underlying_memcpy'
      648 |         __underlying_##op(p, q, __fortify_size);                        \
          |         ^~~~~~~~~~~~~
    include/linux/fortify-string.h:693:26: note: in expansion of macro '__fortify_memcpy_chk'
      693 | #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
          |                          ^~~~~~~~~~~~~~~~~~~~
    fs/udf/directory.c:99:9: note: in expansion of macro 'memcpy'
       99 |         memcpy(&iter->fi, iter->bh[0]->b_data + off, len);
          |         ^~~~~~
      AR      fs/udf/built-in.a
    
    This helps with the ongoing efforts to globally enable
    -Wstringop-overflow.
    
    Link: https://github.com/KSPP/linux/issues/329Signed-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
    Reviewed-by: default avatarKees Cook <keescook@chromium.org>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Message-Id: <ZK7wKS0NgZPfqrZu@work>
    ca97f7e5
directory.c 13.9 KB