[PATCH][next] mm/memremap: Replace zero-length array with DECLARE_FLEX_ARRAY() helper

Gustavo A. R. Silva posted 1 patch 3 years, 7 months ago
include/linux/memremap.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH][next] mm/memremap: Replace zero-length array with DECLARE_FLEX_ARRAY() helper
Posted by Gustavo A. R. Silva 3 years, 7 months ago
Zero-length arrays are deprecated and we are moving towards adopting
C99 flexible-array members, instead. So, replace zero-length array
declaration in struct dev_pagemap with the new DECLARE_FLEX_ARRAY()
helper macro.

This helper allows for a flexible-array member in a union.

Also, this addresses multiple warnings reported when building
with Clang-15 and -Wzero-length-array.

Link: https://github.com/KSPP/linux/issues/193
Link: https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 include/linux/memremap.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/memremap.h b/include/linux/memremap.h
index c3b4cc84877b..ad3c38840194 100644
--- a/include/linux/memremap.h
+++ b/include/linux/memremap.h
@@ -135,7 +135,7 @@ struct dev_pagemap {
 	int nr_range;
 	union {
 		struct range range;
-		struct range ranges[0];
+		DECLARE_FLEX_ARRAY(struct range, ranges);
 	};
 };
 
-- 
2.34.1
Re: [PATCH][next] mm/memremap: Replace zero-length array with DECLARE_FLEX_ARRAY() helper
Posted by Kees Cook 3 years, 7 months ago
On Sat, Sep 03, 2022 at 12:17:18AM +0100, Gustavo A. R. Silva wrote:
> Zero-length arrays are deprecated and we are moving towards adopting
> C99 flexible-array members, instead. So, replace zero-length array
> declaration in struct dev_pagemap with the new DECLARE_FLEX_ARRAY()
> helper macro.
> 
> This helper allows for a flexible-array member in a union.
> 
> Also, this addresses multiple warnings reported when building
> with Clang-15 and -Wzero-length-array.
> 
> Link: https://github.com/KSPP/linux/issues/193
> Link: https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook