[PATCH] ntfs: Replace struct ntfs_name 0-sized array with flexible array

From: Kees Cook
Date: Fri Feb 16 2024 - 18:29:16 EST


ntfs_name::name is used as a destination in memcpy(), so it cannot be a
0-sized array any more. Convert it to a flexible array and annotated
with __counted_by, which matches the allocations.

Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
---
Cc: Anton Altaparmakov <anton@xxxxxxxxxx>
Cc: Namjae Jeon <linkinjeon@xxxxxxxxxx>
Cc: "Gustavo A. R. Silva" <gustavoars@xxxxxxxxxx>
Cc: linux-ntfs-dev@xxxxxxxxxxxxxxxxxxxxx
Cc: linux-hardening@xxxxxxxxxxxxxxx
---
fs/ntfs/dir.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ntfs/dir.h b/fs/ntfs/dir.h
index 0e326753df40..cafcd339094c 100644
--- a/fs/ntfs/dir.h
+++ b/fs/ntfs/dir.h
@@ -22,7 +22,7 @@ typedef struct {
MFT_REF mref;
FILE_NAME_TYPE_FLAGS type;
u8 len;
- ntfschar name[0];
+ ntfschar name[] __counted_by(len);
} __attribute__ ((__packed__)) ntfs_name;

/* The little endian Unicode string $I30 as a global constant. */
--
2.34.1