From patchwork Mon Oct 26 14:34:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcelo Henrique Cerri X-Patchwork-Id: 1387802 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CKcn03HRWz9sSC; Tue, 27 Oct 2020 01:35:00 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1kX3aK-0004xU-9J; Mon, 26 Oct 2020 14:34:56 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1kX3aE-0004wp-SG for kernel-team@lists.ubuntu.com; Mon, 26 Oct 2020 14:34:50 +0000 Received: from mail-qt1-f198.google.com ([209.85.160.198]) by youngberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1kX3aE-0001if-Hh for kernel-team@lists.ubuntu.com; Mon, 26 Oct 2020 14:34:50 +0000 Received: by mail-qt1-f198.google.com with SMTP id n7so6265668qta.7 for ; Mon, 26 Oct 2020 07:34:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gJSKyMph3Lhtb9ml0KpjiwdPqcRlGxNOirYgcOUKJVs=; b=VZf/ObVxxVzAhKw/RvsPgkERcrUJGAOU1kwfo5sWyxzi3T4RDVNrbRXhLn40RaRbqz 3Aaiie+9LrDJOB8t9Lp0+HYl8hoplChy9h7V37q/UQLYO84Y548q6tXNGkzUK4WDkiSd UDSCEW9j9fXTqrADxLXxI6KG1vGRlZ5oLVbz0sDvMKxfeCbtk5J3EU48Nz+2hZ3ZKYat jMPNgYModoYroaO8nZM4vldJzY3Dvm+Iqf57i077po2yBxskhQmJP+MHhWgEvKsLy07s kEjHkDe597wTL721QTVPY4Rf5lOH/aVjfFf7JJeYwwyoyOKeDNlrZvnRVbXlKptbnenH EMhg== X-Gm-Message-State: AOAM530dd0bOXe6O86WASprrj1jzJY4IJKK9YCXrG1EP1sNwBcJGJYak vZnffQIY+XqwooF+8jn3RH6o3SMcNRAWon4Wzn1go3mshNbsBXWZkchXw69kyIwvulGECwh4Qeq 0SNGEyKAgQcKVIgb0h0x5fUCtOptk9kPOVF2NCN/o X-Received: by 2002:a05:6214:153:: with SMTP id x19mr14059826qvs.50.1603722889375; Mon, 26 Oct 2020 07:34:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx0hBitiwTO/Y8t7jXvWXLwgg9W9kiqy/yqKFjKaQ0U4nbqX39eRUoF2rWU3aMIwvkBLibbXg== X-Received: by 2002:a05:6214:153:: with SMTP id x19mr14059791qvs.50.1603722889090; Mon, 26 Oct 2020 07:34:49 -0700 (PDT) Received: from valinor.lan (200-232-230-238.dsl.telesp.net.br. [200.232.230.238]) by smtp.gmail.com with ESMTPSA id y125sm6386480qkb.114.2020.10.26.07.34.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2020 07:34:48 -0700 (PDT) From: Marcelo Henrique Cerri To: kernel-team@lists.ubuntu.com Subject: [bionic:linux-azure-4.15][PATCH 1/2] CIFS: Only send SMB2_NEGOTIATE command on new TCP connections Date: Mon, 26 Oct 2020 11:34:42 -0300 Message-Id: <20201026143443.2526723-2-marcelo.cerri@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201026143443.2526723-1-marcelo.cerri@canonical.com> References: <20201026143443.2526723-1-marcelo.cerri@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Pavel Shilovsky BugLink: https://bugs.launchpad.net/bugs/1882268 Do not allow commands other than SMB2_NEGOTIATE to be sent over recently established TCP connections. Return -EAGAIN to let upper layers handle it properly. Signed-off-by: Pavel Shilovsky Signed-off-by: Steve French (cherry picked from commit 2084ed57167c3e39f99ac2bb19f19e85321d2169) Signed-off-by: Marcelo Henrique Cerri --- fs/cifs/smb2transport.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fs/cifs/smb2transport.c b/fs/cifs/smb2transport.c index a41fc4a63a59..dd601cd34025 100644 --- a/fs/cifs/smb2transport.c +++ b/fs/cifs/smb2transport.c @@ -579,6 +579,10 @@ smb2_get_mid_entry(struct cifs_ses *ses, struct smb2_sync_hdr *shdr, return -EAGAIN; } + if (ses->server->tcpStatus == CifsNeedNegotiate && + shdr->Command != SMB2_NEGOTIATE) + return -EAGAIN; + if (ses->status == CifsNew) { if ((shdr->Command != SMB2_SESSION_SETUP) && (shdr->Command != SMB2_NEGOTIATE)) @@ -658,6 +662,10 @@ smb2_setup_async_request(struct TCP_Server_Info *server, struct smb_rqst *rqst) (struct smb2_sync_hdr *)rqst->rq_iov[1].iov_base; struct mid_q_entry *mid; + if (server->tcpStatus == CifsNeedNegotiate && + shdr->Command != SMB2_NEGOTIATE) + return ERR_PTR(-EAGAIN); + smb2_seq_num_into_buf(server, shdr); mid = smb2_mid_entry_alloc(shdr, server);