mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
![Kees Cook](/assets/img/avatar_default.png)
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: Kees Cook <keescook@chromium.org> Signed-off-by: Steve French <stfrench@microsoft.com>
36 lines
926 B
C
36 lines
926 B
C
/* SPDX-License-Identifier: LGPL-2.1 */
|
|
/*
|
|
* SPNEGO upcall management for CIFS
|
|
*
|
|
* Copyright (c) 2007 Red Hat, Inc.
|
|
* Author(s): Jeff Layton (jlayton@redhat.com)
|
|
* Steve French (sfrench@us.ibm.com)
|
|
*
|
|
*/
|
|
|
|
#ifndef _CIFS_SPNEGO_H
|
|
#define _CIFS_SPNEGO_H
|
|
|
|
#define CIFS_SPNEGO_UPCALL_VERSION 2
|
|
|
|
/*
|
|
* The version field should always be set to CIFS_SPNEGO_UPCALL_VERSION.
|
|
* The flags field is for future use. The request-key callout should set
|
|
* sesskey_len and secblob_len, and then concatenate the SessKey+SecBlob
|
|
* and stuff it in the data field.
|
|
*/
|
|
struct cifs_spnego_msg {
|
|
uint32_t version;
|
|
uint32_t flags;
|
|
uint32_t sesskey_len;
|
|
uint32_t secblob_len;
|
|
uint8_t data[];
|
|
};
|
|
|
|
#ifdef __KERNEL__
|
|
extern struct key_type cifs_spnego_key_type;
|
|
extern struct key *cifs_get_spnego_key(struct cifs_ses *sesInfo,
|
|
struct TCP_Server_Info *server);
|
|
#endif /* KERNEL */
|
|
|
|
#endif /* _CIFS_SPNEGO_H */
|