Commit 73130a7b authored by Steve French's avatar Steve French
Browse files

smb3: fix empty netname context on secondary channels



Some servers do not allow null netname contexts, which would cause
multichannel to revert to single channel when mounting to some
servers (e.g. Azure xSMB).

Fixes: 4c14d704 ("cifs: populate empty hostnames for extra channels")
Reviewed-by: default avatarShyam Prasad N <sprasad@microsoft.com>
Reviewed-by: default avatarPaulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent a111daf0
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -570,16 +570,18 @@ assemble_neg_contexts(struct smb2_negotiate_req *req,
	*total_len += ctxt_len;
	pneg_ctxt += ctxt_len;

	ctxt_len = build_netname_ctxt((struct smb2_netname_neg_context *)pneg_ctxt,
					server->hostname);
	*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);

	if (server->hostname && (server->hostname[0] != 0)) {
		ctxt_len = build_netname_ctxt((struct smb2_netname_neg_context *)pneg_ctxt,
					server->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;

	if (server->compress_algorithm) {
		build_compression_ctxt((struct smb2_compression_capabilities_context *)