mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-27 09:34:37 +00:00
ksmbd: set unique value to volume serial field in FS_VOLUME_INFORMATION
commit5d2f0b1083
upstream. Steve French reported ksmbd set fixed value to volume serial field in FS_VOLUME_INFORMATION. Volume serial value needs to be set to a unique value for client fscache. This patch set crc value that is generated with share name, path name and netbios name to volume serial. Fixes:e2f34481b2
("cifsd: add server-side procedures for SMB3") Cc: stable@vger.kernel.org # v5.15 Reported-by: Steve French <smfrench@gmail.com> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
9e18a61e55
commit
f17ebcca36
3 changed files with 10 additions and 1 deletions
|
@ -19,6 +19,7 @@ config SMB_SERVER
|
|||
select CRYPTO_GCM
|
||||
select ASN1
|
||||
select OID_REGISTRY
|
||||
select CRC32
|
||||
default n
|
||||
help
|
||||
Choose Y here if you want to allow SMB3 compliant clients
|
||||
|
|
|
@ -632,5 +632,6 @@ MODULE_SOFTDEP("pre: sha512");
|
|||
MODULE_SOFTDEP("pre: aead2");
|
||||
MODULE_SOFTDEP("pre: ccm");
|
||||
MODULE_SOFTDEP("pre: gcm");
|
||||
MODULE_SOFTDEP("pre: crc32");
|
||||
module_init(ksmbd_server_init)
|
||||
module_exit(ksmbd_server_exit)
|
||||
|
|
|
@ -4891,11 +4891,18 @@ static int smb2_get_info_filesystem(struct ksmbd_work *work,
|
|||
{
|
||||
struct filesystem_vol_info *info;
|
||||
size_t sz;
|
||||
unsigned int serial_crc = 0;
|
||||
|
||||
info = (struct filesystem_vol_info *)(rsp->Buffer);
|
||||
info->VolumeCreationTime = 0;
|
||||
serial_crc = crc32_le(serial_crc, share->name,
|
||||
strlen(share->name));
|
||||
serial_crc = crc32_le(serial_crc, share->path,
|
||||
strlen(share->path));
|
||||
serial_crc = crc32_le(serial_crc, ksmbd_netbios_name(),
|
||||
strlen(ksmbd_netbios_name()));
|
||||
/* Taking dummy value of serial number*/
|
||||
info->SerialNumber = cpu_to_le32(0xbc3ac512);
|
||||
info->SerialNumber = cpu_to_le32(serial_crc);
|
||||
len = smbConvertToUTF16((__le16 *)info->VolumeLabel,
|
||||
share->name, PATH_MAX,
|
||||
conn->local_nls, 0);
|
||||
|
|
Loading…
Add table
Reference in a new issue