commit: ce587fbdb043f9ed6e28155265f2e2530d756a78 Author: Alice Ferrazzi <alicef <AT> gentoo <DOT> org> AuthorDate: Fri Jul 15 08:56:36 2022 +0000 Commit: Alice Ferrazzi <alicef <AT> gentoo <DOT> org> CommitDate: Fri Jul 15 08:57:31 2022 +0000 URL: https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=ce587fbd
Add 1950_workaround_negprot_bug.patch Fix incompatibility with older samba server Signed-off-by: Alice Ferrazzi <alicef <AT> gentoo.org> 0000_README | 4 +++ 1950_workaround_negprot_bug.patch | 56 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/0000_README b/0000_README index be72894f..764c25c9 100644 --- a/0000_README +++ b/0000_README @@ -99,6 +99,10 @@ Patch: 1700_sparc-address-warray-bound-warnings.patch From: https://github.com/KSPP/linux/issues/109 Desc: Address -Warray-bounds warnings +Patch: 1950_workaround_negprot_bug.patch +From: https://patchwork.kernel.org/project/cifs-client/patch/cah2r5mtun-yswt5vtbnpzj02fwihyoce2er8mcgrgre8qpk...@mail.gmail.com/ +Desc: Fix mount fail to older Samba servers + Patch: 2000_BT-Check-key-sizes-only-if-Secure-Simple-Pairing-enabled.patch From: https://lore.kernel.org/linux-bluetooth/20190522070540.48895-1-mar...@holtmann.org/raw Desc: Bluetooth: Check key sizes only when Secure Simple Pairing is enabled. See bug #686758 diff --git a/1950_workaround_negprot_bug.patch b/1950_workaround_negprot_bug.patch new file mode 100644 index 00000000..9a38ed83 --- /dev/null +++ b/1950_workaround_negprot_bug.patch @@ -0,0 +1,56 @@ +From a8d8532e4c335f0a31dd213abe4e31682f34647c Mon Sep 17 00:00:00 2001 +From: Steve French <stfre...@microsoft.com> +Date: Tue, 12 Jul 2022 00:11:42 -0500 +Subject: [PATCH] smb3: workaround negprot bug in some Samba servers + +Mount can now fail to older Samba servers due to a server +bug handling padding at the end of the last negotiate +contexts (negotiate contexts typically round up to 8 byte +lengths by adding padding if needed). This server bug can +be avoided by switching the order of negotiate contexts, +placing a negotiate context at the end that does not +require padding (prior to the recent netname context fix +this was the case on the client). + +Fixes: 73130a7b1ac9 ("smb3: fix empty netname context on secondary channels") +Reported-by: Julian Sikorski <beleg...@gmail.com> +Signed-off-by: Steve French <stfre...@microsoft.com> +--- + fs/cifs/smb2pdu.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c +index 12b4dddaedb0..c705de32e225 100644 +--- a/fs/cifs/smb2pdu.c ++++ b/fs/cifs/smb2pdu.c +@@ -571,10 +571,6 @@ assemble_neg_contexts(struct smb2_negotiate_req *req, + *total_len += ctxt_len; + pneg_ctxt += ctxt_len; + +- build_posix_ctxt((struct smb2_posix_neg_context *)pneg_ctxt); +- *total_len += sizeof(struct smb2_posix_neg_context); +- pneg_ctxt += sizeof(struct smb2_posix_neg_context); +- + /* + * secondary channels don't have the hostname field populated + * use the hostname field in the primary channel instead +@@ -586,9 +582,14 @@ assemble_neg_contexts(struct smb2_negotiate_req *req, + hostname); + *total_len += ctxt_len; + pneg_ctxt += ctxt_len; +- neg_context_count = 4; +- } else /* second channels do not have a hostname */ + neg_context_count = 3; ++ } else ++ neg_context_count = 2; ++ ++ build_posix_ctxt((struct smb2_posix_neg_context *)pneg_ctxt); ++ *total_len += sizeof(struct smb2_posix_neg_context); ++ pneg_ctxt += sizeof(struct smb2_posix_neg_context); ++ neg_context_count++; + + if (server->compress_algorithm) { + build_compression_ctxt((struct smb2_compression_capabilities_context *) +-- +2.34.1 +