[PATCH v3] smb3: Replace smb2pdu 1-element arrays with flex-arrays

Steve French smfrench at gmail.com
Sat Feb 18 15:19:26 UTC 2023


merged into cifs-2.6.git for-next pending testing

On Fri, Feb 17, 2023 at 9:24 PM Namjae Jeon <linkinjeon at kernel.org> wrote:
>
> 2023-02-18 9:24 GMT+09:00, Kees Cook <keescook at chromium.org>:
> > 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 at samba.org>
> > Cc: Paulo Alcantara <pc at cjr.nz>
> > Cc: Ronnie Sahlberg <lsahlber at redhat.com>
> > Cc: Shyam Prasad N <sprasad at microsoft.com>
> > Cc: Tom Talpey <tom at talpey.com>
> > Cc: Namjae Jeon <linkinjeon at kernel.org>
> > Cc: Sergey Senozhatsky <senozhatsky at chromium.org>
> > Cc: linux-cifs at vger.kernel.org
> > Cc: samba-technical at lists.samba.org
> > Signed-off-by: Kees Cook <keescook at chromium.org>
> Reviewed-by: Namjae Jeon <linkinjeon at kernel.org>
>
> Thanks!



-- 
Thanks,

Steve



More information about the samba-technical mailing list