[PATCH] fs/affs: struct affs_head: Replace 1-element array with flexible array

Kees Cook posted 1 patch 1 year, 5 months ago
fs/affs/amigaffs.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] fs/affs: struct affs_head: Replace 1-element array with flexible array
Posted by Kees Cook 1 year, 5 months ago
AFFS uses struct affs_head's "table" array as a flexible array. Switch
this to a proper flexible array[1]. There are no sizeof() uses; struct
affs_head is only ever uses via direct casts. No binary output
differences were found after this change.

Link: https://github.com/KSPP/linux/issues/79 [1]
Signed-off-by: Kees Cook <kees@kernel.org>
---
Cc: David Sterba <dsterba@suse.com>
Cc: linux-fsdevel@vger.kernel.org
---
 fs/affs/amigaffs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/affs/amigaffs.h b/fs/affs/amigaffs.h
index 5509fbc98bc0..09dc23a644df 100644
--- a/fs/affs/amigaffs.h
+++ b/fs/affs/amigaffs.h
@@ -80,7 +80,7 @@ struct affs_head {
 	__be32 spare1;
 	__be32 first_data;
 	__be32 checksum;
-	__be32 table[1];
+	__be32 table[];
 };
 
 struct affs_tail {
-- 
2.34.1
Re: [PATCH] fs/affs: struct affs_head: Replace 1-element array with flexible array
Posted by Gustavo A. R. Silva 1 year, 5 months ago

On 10/07/24 16:57, Kees Cook wrote:
> AFFS uses struct affs_head's "table" array as a flexible array. Switch
> this to a proper flexible array[1]. There are no sizeof() uses; struct
> affs_head is only ever uses via direct casts. No binary output
> differences were found after this change.
> 
> Link: https://github.com/KSPP/linux/issues/79 [1]
> Signed-off-by: Kees Cook <kees@kernel.org>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks
-- 
Gustavo

> ---
> Cc: David Sterba <dsterba@suse.com>
> Cc: linux-fsdevel@vger.kernel.org
> ---
>   fs/affs/amigaffs.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/affs/amigaffs.h b/fs/affs/amigaffs.h
> index 5509fbc98bc0..09dc23a644df 100644
> --- a/fs/affs/amigaffs.h
> +++ b/fs/affs/amigaffs.h
> @@ -80,7 +80,7 @@ struct affs_head {
>   	__be32 spare1;
>   	__be32 first_data;
>   	__be32 checksum;
> -	__be32 table[1];
> +	__be32 table[];
>   };
>   
>   struct affs_tail {