From 5a4d0d3141f531f0e393092c6120d18b478fb1e0 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Fri, 11 Dec 2020 13:00:00 +0000 Subject: [PATCH] mmsghdr: workaround -Warray-bounds regression in Red Hat gcc The version of gcc packaged into Rawhide erroneously produces the following false positive diagnostics: mmsghdr.c: In function 'do_recvmmsg': mmsghdr.c:87:23: error: array subscript 'struct mmsgvec_data[0]' is partly outside array bounds of 'unsigned char[4108]' [-Werror=array-bounds] 87 | data->timeout = xstrdup(timeout); | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ Tested with: $ gcc --version |head -1 gcc (GCC) 11.0.0 20201204 (Red Hat 11.0.0-0) * mmsghdr.c (struct mmsgvec_data): Change namelen[IOV_MAX] to an array of zero length. Change-Id: I0bea08bef0937582fbdda9ba7009a7b34251dbd1 --- mmsghdr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmsghdr.c b/mmsghdr.c index 3fede19f..149f88b2 100644 --- a/mmsghdr.c +++ b/mmsghdr.c @@ -71,7 +71,7 @@ free_mmsgvec_data(void *ptr) struct mmsgvec_data { char *timeout; unsigned int count; - int namelen[IOV_MAX]; + int namelen[0]; }; static void -- 2.34.1