mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-27 12:32:50 +00:00
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>
37 lines
926 B
C
37 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 */
|