ksmbd: replace one-element arrays with flexible-array members
Subsystems (2)
PATCH 1/1 ksmbd: replace one-element arrays with flexible-array members
One-element arrays are deprecated, and we are replacing them with flexible array members instead. So, replace one-element arrays with flexible-array members in multiple structs in fs/ksmbd/smb_common.h and one in fs/ksmbd/smb2pdu.h.
Important to mention is that doing a build before/after this patch results in no binary output differences.
This helps with the ongoing efforts to tighten the FORTIFY_SOURCE routines on memcpy() and help us make progress towards globally enabling -fstrict-flex-arrays=3 [1].
--- fs/ksmbd/smb2pdu.c | 4 ++-- fs/ksmbd/smb2pdu.h | 2 +- fs/ksmbd/smb_common.h | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-)
fs/ksmbd/smb2pdu.c +2 -2
@@ -3438,7 +3438,7 @@ static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level, goto free_conv_name; } - struct_sz =readdir_info_level_struct_sz (info_level) -1 + conv_len; + struct_sz =readdir_info_level_struct_sz (info_level) + conv_len; next_entry_offset =ALIGN (struct_sz,KSMBD_DIR_INFO_ALIGNMENT ); d_info->last_entry_off_align = next_entry_offset - struct_sz;
@@ -3690,7 +3690,7 @@ static int reserve_populate_dentry(struct ksmbd_dir_info *d_info,return -EOPNOTSUPP ; conv_len = (d_info->name_len +1 ) *2 ; - next_entry_offset =ALIGN (struct_sz -1 + conv_len, + next_entry_offset =ALIGN (struct_sz + conv_len,KSMBD_DIR_INFO_ALIGNMENT );if (next_entry_offset > d_info->out_buf_len) {
fs/ksmbd/smb2pdu.h +1 -1
@@ -443,7 +443,7 @@ struct smb2_posix_info {/* SidBuffer contain two sids (UNIX user sid(16), UNIX group sid(16)) */ u8 SidBuffer[32 ];__le32 name_len; -u8 name[1 ]; +u8 name[];/* * var sized owner SID * var sized group SID
fs/ksmbd/smb_common.h +6 -6
@@ -277,14 +277,14 @@ struct file_directory_info {__le64 AllocationSize;__le32 ExtFileAttributes;__le32 FileNameLength; -char FileName[1 ]; +char FileName[]; } __packed;/* level 0x101 FF resp data */ struct file_names_info {__le32 NextEntryOffset;__u32 FileIndex;__le32 FileNameLength; -char FileName[1 ]; +char FileName[]; } __packed;/* level 0xc FF resp data */ struct file_full_directory_info {
@@ -299,7 +299,7 @@ struct file_full_directory_info {__le32 ExtFileAttributes;__le32 FileNameLength;__le32 EaSize; -char FileName[1 ]; +char FileName[]; } __packed;/* level 0x102 FF resp */ struct file_both_directory_info {
@@ -317,7 +317,7 @@ struct file_both_directory_info {__u8 ShortNameLength;__u8 Reserved;__u8 ShortName[24 ]; -char FileName[1 ]; +char FileName[]; } __packed;/* level 0x104 FFrsp data */ struct file_id_both_directory_info {
@@ -337,7 +337,7 @@ struct file_id_both_directory_info {__u8 ShortName[24 ];__le16 Reserved2;__le64 UniqueId; -char FileName[1 ]; +char FileName[]; } __packed;struct file_id_full_dir_info {
@@ -354,7 +354,7 @@ struct file_id_full_dir_info {__le32 EaSize;/* EA size */ __le32 Reserved;__le64 UniqueId;/* inode num - le since Samba puts ino in low 32 bit*/ -char FileName[1 ]; +char FileName[]; } __packed;/* level 0x105 FF rsp data */ struct smb_version_values {
Signature · 1 line
2.34.1
2022-11-16 0:35 GMT+09:00, Gustavo A. R. Silva <[email protected]>:
Quoted 12 lines
One-element arrays are deprecated, and we are replacing them with flexible array members instead. So, replace one-element arrays with flexible-array members in multiple structs in
fs/ksmbd/smb_common.hand one infs/ksmbd/smb2pdu.h.Important to mention is that doing a build before/after this patch results in no binary output differences.
This helps with the ongoing efforts to tighten the
FORTIFY_SOURCEroutines onmemcpy()and help us make progress towards globally enabling -fstrict-flex-arrays=3 [1].
Quoted 5 lines
Thanks for your patch!
Quoted 8 lines · Gustavo A. R. Silva
One-element arrays are deprecated, and we are replacing them with flexible array members instead. So, replace one-element arrays with flexible-array members in multiple structs in
fs/ksmbd/smb_common.hand one infs/ksmbd/smb2pdu.h.Important to mention is that doing a build before/after this patch results in no binary output differences.
Quoted 8 lines
This helps with the ongoing efforts to tighten the
FORTIFY_SOURCEroutines onmemcpy()and help us make progress towards globally enabling -fstrict-flex-arrays=3 [1].
Signature · 1 line
Kees Cook
Quoted 8 lines · Gustavo A. R. Silva
One-element arrays are deprecated, and we are replacing them with flexible array members instead. So, replace one-element arrays with flexible-array members in multiple structs in
fs/ksmbd/smb_common.hand one infs/ksmbd/smb2pdu.h.Important to mention is that doing a build before/after this patch results in no binary output differences.
Quoted 8 lines
This helps with the ongoing efforts to tighten the
FORTIFY_SOURCEroutines onmemcpy()and help us make progress towards globally enabling -fstrict-flex-arrays=3 [1].