Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp5134780imu; Tue, 8 Jan 2019 12:08:27 -0800 (PST) X-Google-Smtp-Source: ALg8bN4VWoMZFg0VAcN4Vhyj4jSfetnSPzZC4SebP3AIpII9yzitFYJN/giyMAP7sJBBho/m1Nbl X-Received: by 2002:a63:d005:: with SMTP id z5mr2772646pgf.64.1546978107897; Tue, 08 Jan 2019 12:08:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546978107; cv=none; d=google.com; s=arc-20160816; b=gAo4wRlKLELcK8xRt6acYcUzvCZWpZa1ESTLF2dSNs8uin2KqtuQtQEIN5bfPki/3+ s4Kt8M1h39VRV7CHQ5ZkV8vIbS+qM0v6PEu/FPFuThc0wOXQyJWUXVqvVD1oirhYD3rK 0GfbpLjLs/4QrR64n06FAcAJIFT9L4KMmXswzToOCqQQKbnW+Bvn9xXJrWM7xMd90pU9 QxfERCkROGmUvP/ssoBu0BQ2JGfYCxNTCu9ggEQFgGTCjbJCje/7poC4VqpNCdC08wD6 YI7lXqlnPHM2mT3JbBLTa6y/Kman7kE09rr/DXQ2FztaYkfcEawnuE8xb8FRVN4jqzMI el4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=aUu13h7YXiGTSBvABK9DGeaKS92nkD78uOD7h7538oA=; b=erY6aoWeHxuHue5Z88uWSaHLBoteZSmlWR79qbA2Gh242C3s1sQUiSvTRemSesn61V EdVvv+v+V9+rRQKUDSOBMKIlQeNuwqgMXrfu3qR7TpbnRPKOt+1rLZWZgxZ5Lz7AVRRo dMzIMlgjbXhQ7OM4PtxRQAx60dAnraO81xAiznLdUjRAiVGB8Ei9qjIhUO2IClV41S9v xbSCYlPjOH0JKwrLFCnA57QnVELErXeJdFXDdDa0bviMpcjz2PmaJtEcSlxc8KTEIt6M EtFygzaknffG7EMNKDCq3jHdsT6Pnl2p1c+t0UDv9YB6Kzi6dPJWScb+ekJSRdmrdr2y /fIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=TdGNjAhn; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a16si21254830plm.365.2019.01.08.12.08.12; Tue, 08 Jan 2019 12:08:27 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=TdGNjAhn; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732780AbfAHUFa (ORCPT + 99 others); Tue, 8 Jan 2019 15:05:30 -0500 Received: from mail.kernel.org ([198.145.29.99]:35096 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729938AbfAHT2N (ORCPT ); Tue, 8 Jan 2019 14:28:13 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C228C20883; Tue, 8 Jan 2019 19:28:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1546975692; bh=MiGngHx/F+dixiuqPDdJHWZyQWb3SCGUvEU5gJhrBXo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TdGNjAhnwcAvsGm46oBWEKF/6shILF/aCzHBiIkpo8wd6PJ2LyzDlmB/M0zUHCc11 kgPyL1EjpdQ0VCeaodCcUUxVRDIumYTZ7vMkfiy37r15dnf6yKdiyjVNv13FuOQGV1 bYFXESqNU06d8BP8Pc6+fV5huNwoTCMfEN4NDKzg= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David Disseldorp , "Martin K . Petersen" , Sasha Levin , linux-scsi@vger.kernel.org, target-devel@vger.kernel.org Subject: [PATCH AUTOSEL 4.20 058/117] scsi: target: use consistent left-aligned ASCII INQUIRY data Date: Tue, 8 Jan 2019 14:25:26 -0500 Message-Id: <20190108192628.121270-58-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190108192628.121270-1-sashal@kernel.org> References: <20190108192628.121270-1-sashal@kernel.org> MIME-Version: 1.0 X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: David Disseldorp [ Upstream commit 0de263577de5d5e052be5f4f93334e63cc8a7f0b ] spc5r17.pdf specifies: 4.3.1 ASCII data field requirements ASCII data fields shall contain only ASCII printable characters (i.e., code values 20h to 7Eh) and may be terminated with one or more ASCII null (00h) characters. ASCII data fields described as being left-aligned shall have any unused bytes at the end of the field (i.e., highest offset) and the unused bytes shall be filled with ASCII space characters (20h). LIO currently space-pads the T10 VENDOR IDENTIFICATION and PRODUCT IDENTIFICATION fields in the standard INQUIRY data. However, the PRODUCT REVISION LEVEL field in the standard INQUIRY data as well as the T10 VENDOR IDENTIFICATION field in the INQUIRY Device Identification VPD Page are zero-terminated/zero-padded. Fix this inconsistency by using space-padding for all of the above fields. Signed-off-by: David Disseldorp Reviewed-by: Christoph Hellwig Reviewed-by: Bryant G. Ly Reviewed-by: Lee Duncan Reviewed-by: Hannes Reinecke Reviewed-by: Roman Bolshakov Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/target/target_core_spc.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c index f459118bc11b..c37dd36ec77d 100644 --- a/drivers/target/target_core_spc.c +++ b/drivers/target/target_core_spc.c @@ -108,12 +108,17 @@ spc_emulate_inquiry_std(struct se_cmd *cmd, unsigned char *buf) buf[7] = 0x2; /* CmdQue=1 */ - memcpy(&buf[8], "LIO-ORG ", 8); - memset(&buf[16], 0x20, 16); + /* + * ASCII data fields described as being left-aligned shall have any + * unused bytes at the end of the field (i.e., highest offset) and the + * unused bytes shall be filled with ASCII space characters (20h). + */ + memset(&buf[8], 0x20, 8 + 16 + 4); + memcpy(&buf[8], "LIO-ORG", sizeof("LIO-ORG") - 1); memcpy(&buf[16], dev->t10_wwn.model, - min_t(size_t, strlen(dev->t10_wwn.model), 16)); + strnlen(dev->t10_wwn.model, 16)); memcpy(&buf[32], dev->t10_wwn.revision, - min_t(size_t, strlen(dev->t10_wwn.revision), 4)); + strnlen(dev->t10_wwn.revision, 4)); buf[4] = 31; /* Set additional length to 31 */ return 0; @@ -251,7 +256,9 @@ spc_emulate_evpd_83(struct se_cmd *cmd, unsigned char *buf) buf[off] = 0x2; /* ASCII */ buf[off+1] = 0x1; /* T10 Vendor ID */ buf[off+2] = 0x0; - memcpy(&buf[off+4], "LIO-ORG", 8); + /* left align Vendor ID and pad with spaces */ + memset(&buf[off+4], 0x20, 8); + memcpy(&buf[off+4], "LIO-ORG", sizeof("LIO-ORG") - 1); /* Extra Byte for NULL Terminator */ id_len++; /* Identifier Length */ -- 2.19.1