]> www.infradead.org Git - users/jedix/linux-maple.git/commit
smb: client: handle max length for SMB symlinks
authorPaulo Alcantara <pc@manguebit.com>
Mon, 18 Nov 2024 15:35:16 +0000 (12:35 -0300)
committerSteve French <stfrench@microsoft.com>
Thu, 21 Nov 2024 16:45:50 +0000 (10:45 -0600)
commit0812340811e45ec4039d409049be53056182a552
tree5fd69d99e363091267f69811678d1ce8de67a9f9
parent9f544d26b15bfc52cf3a6e6a655f759e76c1a01a
smb: client: handle max length for SMB symlinks

We can't use PATH_MAX for SMB symlinks because

  (1) Windows Server will fail FSCTL_SET_REPARSE_POINT with
      STATUS_IO_REPARSE_DATA_INVALID when input buffer is larger than
      16K, as specified in MS-FSA 2.1.5.10.37.

  (2) The client won't be able to parse large SMB responses that
      includes SMB symlink path within SMB2_CREATE or SMB2_IOCTL
      responses.

Fix this by defining a maximum length value (4060) for SMB symlinks
that both client and server can handle.

Cc: David Howells <dhowells@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/reparse.c
fs/smb/client/reparse.h