• Kees Cook's avatar
    cifs: Replace remaining 1-element arrays · 35235e19
    Kees Cook authored
    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 cifs_spnego_msg
    	struct cifs_quota_data
    	struct get_dfs_referral_rsp
    	struct file_alt_name_info
    	NEGOTIATE_RSP
    	SESSION_SETUP_ANDX
    	TCONX_REQ
    	TCONX_RSP
    	TCONX_RSP_EXT
    	ECHO_REQ
    	ECHO_RSP
    	OPEN_REQ
    	OPENX_REQ
    	LOCK_REQ
    	RENAME_REQ
    	COPY_REQ
    	COPY_RSP
    	NT_RENAME_REQ
    	DELETE_FILE_REQ
    	DELETE_DIRECTORY_REQ
    	CREATE_DIRECTORY_REQ
    	QUERY_INFORMATION_REQ
    	SETATTR_REQ
    	TRANSACT_IOCTL_REQ
    	TRANSACT_CHANGE_NOTIFY_REQ
    	TRANSACTION2_QPI_REQ
    	TRANSACTION2_SPI_REQ
    	TRANSACTION2_FFIRST_REQ
    	TRANSACTION2_GET_DFS_REFER_REQ
    	FILE_UNIX_LINK_INFO
    	FILE_DIRECTORY_INFO
    	FILE_FULL_DIRECTORY_INFO
    	SEARCH_ID_FULL_DIR_INFO
    	FILE_BOTH_DIRECTORY_INFO
    	FIND_FILE_STANDARD_INFO
    
    Replace the trailing 1-element array with a flexible array, but leave
    the existing structure padding:
    
    	FILE_ALL_INFO
    	FILE_UNIX_INFO
    
    Remove unused structures:
    
    	struct gea
    	struct gealist
    
    Adjust all related size calculations to match the changes to sizeof().
    
    No machine code output 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: linux-cifs@vger.kernel.org
    Cc: samba-technical@lists.samba.org
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    35235e19
cifs_spnego.h 926 Bytes