gcc-10 warns about accesses into the f_handle[] zero-length array. fs/notify/fdinfo.c: In function 'show_mark_fhandle': fs/notify/fdinfo.c:66:47: error: array subscript 'i' is outside the bounds of an interior zero-length array 'unsigned char[0]' [-Werror=zero-length-bounds] 66 | seq_printf(m, "%02x", (int)f.handle.f_handle[i]); | ~~~~~~~~~~~~~~~~~^~~ In file included from fs/notify/fdinfo.c:3: include/linux/fs.h:988:16: note: while referencing 'f_handle' 988 | unsigned char f_handle[0]; | ^~~~~~~~ This is solved by using a flexible array instead. Cc: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> --- Gustavo has done the same thing as part of a treewide change, but keeping this separate lets us backport it to stable kernels more easily later. --- include/linux/fs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index 8690dc56e883..b229c55a8232 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -986,7 +986,7 @@ struct file_handle { __u32 handle_bytes; int handle_type; /* file identifier */ - unsigned char f_handle[0]; + unsigned char f_handle[]; }; static inline struct file *get_file(struct file *f) -- 2.26.0