On Thu, May 16, 2019 at 02:44:28PM +0200, Simon Horman wrote: > On Mon, May 13, 2019 at 09:55:21PM -0300, Jason Gunthorpe wrote: > > gcc 9 now does allocation size tracking and thinks that passing the member > > of a union and then accessing beyond that member's bounds is an overflow. > > > > Instead of using the union member, use the entire union with a cast to > > get to the sockaddr. gcc will now know that the memory extends the full > > size of the union. > > > > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxxxx> > > drivers/infiniband/core/addr.c | 16 ++++++++-------- > > drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 5 ++--- > > drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 5 ++--- > > 3 files changed, 12 insertions(+), 14 deletions(-) > > > > I missed the ocrdma files in the v1 > > > > We can revisit what to do with that repetitive union after the merge > > window, but this simple patch will eliminate the warnings for now. > > > > Linus, I'll send this as a PR tomorrow - there is also a bug fix for > > the rdma-netlink changes posted that should go too. > > <2c> > I would be very happy to see this revisited in such a way > that some use is made of the C type system (instead of casts). > </2c> Well, I was thinking of swapping the union to sockaddr_storage .. Do you propose to add a union to the kernel's sockaddr storage? Jason