Author: vangyzen Date: Mon Aug 31 16:17:28 2020 New Revision: 364997 URL: https://svnweb.freebsd.org/changeset/base/364997
Log: infiniband: Appease Coverty Coverity claims the call to rdma_gid2ip in cma_igmp_send overwrites addr. Use a consistent definition of sockaddr to prevent detections and code changes in the future. Submitted by: bret_ketc...@dell.com Reported by: Coverity Reviewed by: hselasky, kib MFC after: 2 weeks Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D26229 Modified: head/sys/ofed/drivers/infiniband/core/ib_addr.c head/sys/ofed/drivers/infiniband/core/ib_cma.c head/sys/ofed/drivers/infiniband/core/ib_sa_query.c head/sys/ofed/include/rdma/ib_addr.h Modified: head/sys/ofed/drivers/infiniband/core/ib_addr.c ============================================================================== --- head/sys/ofed/drivers/infiniband/core/ib_addr.c Mon Aug 31 16:07:40 2020 (r364996) +++ head/sys/ofed/drivers/infiniband/core/ib_addr.c Mon Aug 31 16:17:28 2020 (r364997) @@ -860,11 +860,7 @@ int rdma_addr_find_l2_eth_by_grh(const union ib_gid *s struct rdma_dev_addr dev_addr; struct resolve_cb_context ctx; - union { - struct sockaddr _sockaddr; - struct sockaddr_in _sockaddr_in; - struct sockaddr_in6 _sockaddr_in6; - } sgid_addr, dgid_addr; + union rdma_sockaddr sgid_addr, dgid_addr; rdma_gid2ip(&sgid_addr._sockaddr, sgid); rdma_gid2ip(&dgid_addr._sockaddr, dgid); Modified: head/sys/ofed/drivers/infiniband/core/ib_cma.c ============================================================================== --- head/sys/ofed/drivers/infiniband/core/ib_cma.c Mon Aug 31 16:07:40 2020 (r364996) +++ head/sys/ofed/drivers/infiniband/core/ib_cma.c Mon Aug 31 16:17:28 2020 (r364997) @@ -450,18 +450,15 @@ static int cma_igmp_send(struct net_device *ndev, cons int retval; if (ndev) { - union { - struct sockaddr sock; - struct sockaddr_storage storage; - } addr; + union rdma_sockaddr addr; - rdma_gid2ip(&addr.sock, mgid); + rdma_gid2ip(&addr._sockaddr, mgid); CURVNET_SET_QUIET(ndev->if_vnet); if (join) - retval = -if_addmulti(ndev, &addr.sock, NULL); + retval = -if_addmulti(ndev, &addr._sockaddr, NULL); else - retval = -if_delmulti(ndev, &addr.sock); + retval = -if_delmulti(ndev, &addr._sockaddr); CURVNET_RESTORE(); } else { retval = -ENODEV; Modified: head/sys/ofed/drivers/infiniband/core/ib_sa_query.c ============================================================================== --- head/sys/ofed/drivers/infiniband/core/ib_sa_query.c Mon Aug 31 16:07:40 2020 (r364996) +++ head/sys/ofed/drivers/infiniband/core/ib_sa_query.c Mon Aug 31 16:17:28 2020 (r364997) @@ -668,11 +668,7 @@ int ib_init_ah_from_path(struct ib_device *device, u8 struct rdma_dev_addr dev_addr = {.bound_dev_if = rec->ifindex, .net = rec->net ? rec->net : &init_net}; - union { - struct sockaddr _sockaddr; - struct sockaddr_in _sockaddr_in; - struct sockaddr_in6 _sockaddr_in6; - } sgid_addr, dgid_addr; + union rdma_sockaddr sgid_addr, dgid_addr; if (!device->get_netdev) return -EOPNOTSUPP; Modified: head/sys/ofed/include/rdma/ib_addr.h ============================================================================== --- head/sys/ofed/include/rdma/ib_addr.h Mon Aug 31 16:07:40 2020 (r364996) +++ head/sys/ofed/include/rdma/ib_addr.h Mon Aug 31 16:17:28 2020 (r364997) @@ -57,6 +57,13 @@ struct rdma_addr_client { struct completion comp; }; +union rdma_sockaddr { + struct sockaddr _sockaddr; + struct sockaddr_in _sockaddr_in; + struct sockaddr_in6 _sockaddr_in6; + struct sockaddr_storage _sockaddr_ss; +}; + /** * rdma_addr_register_client - Register an address client. */ _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"