fs/affs/amigaffs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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
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 {
© 2016 - 2025 Red Hat, Inc.