linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, David Disseldorp <ddiss@suse.de>,
	Mike Christie <mchristi@redhat.com>,
	Maged Mokhtar <mmokhtar@petasan.org>,
	Christoph Hellwig <hch@lst.de>,
	"Martin K. Petersen" <martin.petersen@oracle.com>
Subject: [PATCH 4.17 12/56] scsi: target: Fix truncated PR-in ReadKeys response
Date: Tue, 10 Jul 2018 20:24:54 +0200	[thread overview]
Message-ID: <20180710182504.141738182@linuxfoundation.org> (raw)
In-Reply-To: <20180710182503.544433950@linuxfoundation.org>

4.17-stable review patch.  If anyone has any objections, please let me know.

------------------

From: David Disseldorp <ddiss@suse.de>

commit 63ce3c384db26494615e3c8972bcd419ed71f4c4 upstream.

SPC5r17 states that the contents of the ADDITIONAL LENGTH field are not
altered based on the allocation length, so always calculate and pack the
full key list length even if the list itself is truncated.

According to Maged:

  Yes it fixes the "Storage Spaces Persistent Reservation" test in the
  Windows 2016 Server Failover Cluster validation suites when having
  many connections that result in more than 8 registrations. I tested
  your patch on 4.17 with iblock.

This behaviour can be tested using the libiscsi PrinReadKeys.Truncate test.

Cc: stable@vger.kernel.org
Signed-off-by: David Disseldorp <ddiss@suse.de>
Reviewed-by: Mike Christie <mchristi@redhat.com>
Tested-by: Maged Mokhtar <mmokhtar@petasan.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/target_core_pr.c |   15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

--- a/drivers/target/target_core_pr.c
+++ b/drivers/target/target_core_pr.c
@@ -3727,11 +3727,16 @@ core_scsi3_pri_read_keys(struct se_cmd *
 		 * Check for overflow of 8byte PRI READ_KEYS payload and
 		 * next reservation key list descriptor.
 		 */
-		if ((add_len + 8) > (cmd->data_length - 8))
-			break;
-
-		put_unaligned_be64(pr_reg->pr_res_key, &buf[off]);
-		off += 8;
+		if (off + 8 <= cmd->data_length) {
+			put_unaligned_be64(pr_reg->pr_res_key, &buf[off]);
+			off += 8;
+		}
+		/*
+		 * SPC5r17: 6.16.2 READ KEYS service action
+		 * The ADDITIONAL LENGTH field indicates the number of bytes in
+		 * the Reservation key list. The contents of the ADDITIONAL
+		 * LENGTH field are not altered based on the allocation length
+		 */
 		add_len += 8;
 	}
 	spin_unlock(&dev->t10_pr.registration_lock);



  parent reply	other threads:[~2018-07-10 18:34 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-10 18:24 [PATCH 4.17 00/56] 4.17.6-stable review Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 01/56] userfaultfd: hugetlbfs: fix userfaultfd_huge_must_wait() pte access Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 02/56] mm: hugetlb: yield when prepping struct pages Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 03/56] mm: teach dump_page() to correctly output poisoned " Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 04/56] PCI / ACPI / PM: Resume bridges w/o drivers on suspend-to-RAM Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 05/56] ACPICA: Drop leading newlines from error messages Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 06/56] ACPI / battery: Safe unregistering of hooks Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 07/56] drm/amdgpu: Make struct amdgpu_atif private to amdgpu_acpi.c Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 08/56] tracing: Avoid string overflow Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 09/56] tracing: Fix missing return symbol in function_graph output Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 10/56] scsi: sg: mitigate read/write abuse Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 11/56] scsi: aacraid: Fix PD performance regression over incorrect qd being set Greg Kroah-Hartman
2018-07-10 18:24 ` Greg Kroah-Hartman [this message]
2018-07-10 18:24 ` [PATCH 4.17 13/56] s390: Correct register corruption in critical section cleanup Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 14/56] drbd: fix access after free Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 15/56] vfio: Use get_user_pages_longterm correctly Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 16/56] ARM: dts: imx51-zii-rdu1: fix touchscreen pinctrl Greg Kroah-Hartman
2018-07-10 18:24 ` [PATCH 4.17 17/56] ARM: dts: omap3: Fix am3517 mdio and emac clock references Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 18/56] ARM: dts: dra7: Disable metastability workaround for USB2 Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 19/56] cifs: Fix use after free of a mid_q_entry Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 20/56] cifs: Fix memory leak in smb2_set_ea() Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 21/56] cifs: Fix slab-out-of-bounds in send_set_info() on SMB2 ACE setting Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 22/56] cifs: Fix infinite loop when using hard mount option Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 23/56] drm: Use kvzalloc for allocating blob property memory Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 24/56] drm/udl: fix display corruption of the last line Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 25/56] drm/amdgpu: Add amdgpu_atpx_get_dhandle() Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 26/56] drm/amdgpu: Dynamically probe for ATIF handle (v2) Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 27/56] jbd2: dont mark block as modified if the handle is out of credits Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 28/56] ext4: add corruption check in ext4_xattr_set_entry() Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 29/56] ext4: always verify the magic number in xattr blocks Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 30/56] ext4: make sure bitmaps and the inode table dont overlap with bg descriptors Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 31/56] ext4: always check block group bounds in ext4_init_block_bitmap() Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 32/56] ext4: only look at the bg_flags field if it is valid Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 33/56] ext4: verify the depth of extent tree in ext4_find_extent() Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 34/56] ext4: include the illegal physical block in the bad map ext4_error msg Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 35/56] ext4: clear i_data in ext4_inode_info when removing inline data Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 36/56] ext4: never move the system.data xattr out of the inode body Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 37/56] ext4: avoid running out of journal credits when appending to an inline file Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 38/56] ext4: add more inode number paranoia checks Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 39/56] ext4: add more mount time checks of the superblock Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 40/56] ext4: check superblock mapped prior to committing Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 41/56] HID: i2c-hid: Fix "incomplete report" noise Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 42/56] HID: hiddev: fix potential Spectre v1 Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 43/56] HID: debug: check length before copy_to_user() Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 44/56] HID: core: allow concurrent registration of drivers Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 45/56] i2c: core: smbus: fix a potential missing-check bug Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 46/56] i2c: smbus: kill memory leak on emulated and failed DMA SMBus xfers Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 47/56] fs: allow per-device dax status checking for filesystems Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 48/56] dax: change bdev_dax_supported() to support boolean returns Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 49/56] dax: check for QUEUE_FLAG_DAX in bdev_dax_supported() Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 50/56] dm: prevent DAX mounts if not supported Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 51/56] mtd: cfi_cmdset_0002: Change definition naming to retry write operation Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 52/56] mtd: cfi_cmdset_0002: Change erase functions to retry for error Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 53/56] mtd: cfi_cmdset_0002: Change erase functions to check chip good only Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 54/56] netfilter: nf_log: dont hold nf_log_mutex during user access Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 55/56] staging: comedi: quatech_daqp_cs: fix no-op loop daqp_ao_insn_write() Greg Kroah-Hartman
2018-07-10 18:25 ` [PATCH 4.17 56/56] Revert mm/vmstat.c: fix vmstat_update() preemption BUG Greg Kroah-Hartman
2018-07-11 11:18 ` [PATCH 4.17 00/56] 4.17.6-stable review Naresh Kamboju
2018-07-11 13:23   ` Greg Kroah-Hartman
2018-07-11 13:41 ` Guenter Roeck
2018-07-11 14:03   ` Greg Kroah-Hartman
2018-07-11 15:23 ` Shuah Khan
2018-07-11 15:28   ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180710182504.141738182@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=ddiss@suse.de \
    --cc=hch@lst.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mchristi@redhat.com \
    --cc=mmokhtar@petasan.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).