-
- Downloads
smb3: Replace smb2pdu 1-element arrays with flex-arrays
The kernel is globally removing the ambiguous 0-length and 1-element arrays in favor of flexible arrays, so that we can gain both compile-time and run-time array bounds checking[1]. Replace the trailing 1-element array with a flexible array in the following structures: struct smb2_err_rsp struct smb2_tree_connect_req struct smb2_negotiate_rsp struct smb2_sess_setup_req struct smb2_sess_setup_rsp struct smb2_read_req struct smb2_read_rsp struct smb2_write_req struct smb2_write_rsp struct smb2_query_directory_req struct smb2_query_directory_rsp struct smb2_set_info_req struct smb2_change_notify_rsp struct smb2_create_rsp struct smb2_query_info_req struct smb2_query_info_rsp Replace the trailing 1-element array with a flexible array, but leave the existing structure padding: struct smb2_file_all_info struct smb2_lock_req Adjust all related size calculations to match the changes to sizeof(). No machine code output or .data section differences are produced after these changes. [1] For lots of details, see both: https://docs.kernel.org/process/deprecated.html#zero-length-and-one-element-arrays https://people.kernel.org/kees/bounded-flexible-arrays-in-c Cc: Steve French <sfrench@samba.org> Cc: Paulo Alcantara <pc@cjr.nz> Cc: Ronnie Sahlberg <lsahlber@redhat.com> Cc: Shyam Prasad N <sprasad@microsoft.com> Cc: Tom Talpey <tom@talpey.com> Cc: Namjae Jeon <linkinjeon@kernel.org> Cc: Sergey Senozhatsky <senozhatsky@chromium.org> Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Reviewed-by:Namjae Jeon <linkinjeon@kernel.org> Signed-off-by:
Kees Cook <keescook@chromium.org> Signed-off-by:
Steve French <stfrench@microsoft.com>
Showing
- fs/cifs/smb2file.c 1 addition, 1 deletionfs/cifs/smb2file.c
- fs/cifs/smb2misc.c 1 addition, 1 deletionfs/cifs/smb2misc.c
- fs/cifs/smb2ops.c 7 additions, 7 deletionsfs/cifs/smb2ops.c
- fs/cifs/smb2pdu.c 7 additions, 9 deletionsfs/cifs/smb2pdu.c
- fs/cifs/smb2pdu.h 1 addition, 1 deletionfs/cifs/smb2pdu.h
- fs/ksmbd/smb2ops.c 4 additions, 4 deletionsfs/ksmbd/smb2ops.c
- fs/ksmbd/smb2pdu.c 2 additions, 4 deletionsfs/ksmbd/smb2pdu.c
- fs/smbfs_common/smb2pdu.h 24 additions, 18 deletionsfs/smbfs_common/smb2pdu.h
Loading
Please register or sign in to comment