Skip to content
  • Arnd Bergmann's avatar
    infiniband: avoid overflow warning · 5f8a4db7
    Arnd Bergmann authored
    A sockaddr_in structure on the stack getting passed into rdma_ip2gid
    triggers this warning, since we memcpy into a larger sockaddr_in6
    structure:
    
    In function 'memcpy',
        inlined from 'rdma_ip2gid' at include/rdma/ib_addr.h:175:3,
        inlined from 'addr_event.isra.4.constprop' at drivers/infiniband/core/roce_gid_mgmt.c:693:2,
        inlined from 'inetaddr_event' at drivers/infiniband/core/roce_gid_mgmt.c:716:9:
    include/linux/string.h:305:4: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
    
    The warning seems appropriate here, but the code is also clearly
    correct, so we really just want to shut up this instance of the
    output.
    
    The best way I found so far is to avoid the memcpy() call and instead
    replace it with a struct assignment.
    
    Fixes: 6974f0c4
    
     ("include/linux/string.h: add the option of fortified string.h functions")
    Cc: Daniel Micay <danielmicay@gmail.com>
    Cc: Kees Cook <keescook@chromium.org>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    5f8a4db7