• Leon Romanovsky's avatar
    RDMA/iwcm: Fix string truncation error · 1882ab86
    Leon Romanovsky authored
    The strlen() check at the beginning of iw_cm_map() ensures that devname
    and ifname strings are less than destinations to which they are supposed
    to be copied. Change strncpy() call to be strcpy(), because we are
    protected from overflow. Zero the entire string buffer to avoid copying
    uninitialized kernel stack memory to userspace.
    
    This fixes the compilation warning below:
    
    In file included from ./include/linux/dma-mapping.h:6,
                     from drivers/infiniband/core/iwcm.c:38:
    In function _strncpy_,
        inlined from _iw_cm_map_ at drivers/infiniband/core/iwcm.c:519:2:
    ./include/linux/string.h:253:9: warning: ___builtin_strncpy_ specified
    bound 32 equals destination size [-Wstringop-truncation]
      return __builtin_strncpy(p, q, size);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Fixes: d53ec8af ("RDMA/iwcm: Don't copy past the end of dev_name() string")
    Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    1882ab86
iwcm.c 33.5 KB