RDMA/erdma: Replace zero-length arrays with flexible-array members
authorGustavo A. R. Silva <gustavoars@kernel.org>
Tue, 10 Jan 2023 01:40:22 +0000 (19:40 -0600)
committerLeon Romanovsky <leon@kernel.org>
Sun, 15 Jan 2023 11:33:49 +0000 (13:33 +0200)
Zero-length arrays are deprecated[1] and we are moving towards
adopting C99 flexible-array members instead. So, replace zero-length
arrays, in a couple of structures, with flex-array members.

This helps with the ongoing efforts to tighten the FORTIFY_SOURCE
routines on memcpy() and help us make progress towards globally
enabling -fstrict-flex-arrays=3 [2].

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays
Link: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/602902.html
Link: https://github.com/KSPP/linux/issues/78
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/Y7zCBqwC1LtabRJ9@work
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Cheng Xu <chengyou@linux.alibaba.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/erdma/erdma_hw.h

index ab371fe..4c38d99 100644 (file)
@@ -397,7 +397,7 @@ struct erdma_write_sqe {
 
        __le32 rsvd;
 
-       struct erdma_sge sgl[0];
+       struct erdma_sge sgl[];
 };
 
 struct erdma_send_sqe {
@@ -408,7 +408,7 @@ struct erdma_send_sqe {
        };
 
        __le32 length;
-       struct erdma_sge sgl[0];
+       struct erdma_sge sgl[];
 };
 
 struct erdma_readreq_sqe {