Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2402944imu; Thu, 24 Jan 2019 12:09:20 -0800 (PST) X-Google-Smtp-Source: ALg8bN6p6V+lcHkBNttitGyBMP14CrhL9Dz1CK1Hw0EGX00zPONl1/pwgjQjF+Ojw4JsHL/yT1uO X-Received: by 2002:a63:a611:: with SMTP id t17mr7174874pge.338.1548360560634; Thu, 24 Jan 2019 12:09:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548360560; cv=none; d=google.com; s=arc-20160816; b=c8a7EBO/XC0Q6hC70Uc8Yolw/zSBNwJsix5V6zAblnshQgmPCHD8sLqKJJEunn7HKm P3VAdFBORxjbe4grYDYyGOku7atdo5OejeFLCEccUEbAzCfD7/hQQ4dXPLwN0tOtMDG/ ZmHWkud+uonbXij36Du64MvhCECV2zvdahQN9SJE/5lXPkitnrDpTgXBPFare9qFa5JC 5UZe+CMoe0ld14kUlLvKApXsUklWzulMZb5Hv1Huo/LTz5eC/nJM3hRxwYM8knfPK6Jp 0uVcrl0bgvuc3neHWb8Qy8AsGhFhjeBnSJd4/7aAQRNTcpciMTOjGUyZnPjOa4Q+Qu5a miYQ== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=pb96JDTHaEzGlrR3mc8dHVaN4r3F6sBSjHofkisWxuM=; b=yC+grYmL42+49jtFKXftd5LPW6JQSYC2Gjr068r4QYeFB3MxZjB/1QRd2AQHVkzDu1 zSWGd4/12jcEUR7Dynbf7UgG9KKl23MZQYtkfmowgcEhW0AgFpQNMmvxGfJS3IvcLskW jaUmuohCHSh1sB7tDhOGX2VSIiUux1rMUoqj1z62GIlmm2BW+b9PmXYy8j3u94U/HhJl hWpCvcKwc1nuwizN+2d52B5HO6ZjS9EA7qr0chc0C46OX/U5jMiYeEzrQLadNchXBb7I tb62EyXpQRJT7YghAllsxxz5B9DTxZj44jRdVeFR4PIOuaGHouXfse+l4Rvww6JsoiTw XJkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="VX62/A2x"; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p126si6999476pgp.529.2019.01.24.12.09.05; Thu, 24 Jan 2019 12:09:20 -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="VX62/A2x"; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731214AbfAXT3e (ORCPT + 99 others); Thu, 24 Jan 2019 14:29:34 -0500 Received: from mail.kernel.org ([198.145.29.99]:56730 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730514AbfAXT3c (ORCPT ); Thu, 24 Jan 2019 14:29:32 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 16A77218E2; Thu, 24 Jan 2019 19:29:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1548358171; bh=0TvAFuxmLScwzkVoLj6itgXLuqcvNEVwEN6pL8jQ+to=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VX62/A2xYAZs78+nC7lNnU+Yclh+WmGXdG7zDYccaryroxe0yQgDvkTvz399W6aQ6 xGkUc1h2ycrlTuFN5oA3ZVdDuguAGnnuR8vOc9rxWsaKLHnDiIWQZ/GsI1xvDZuigq QpQ4aYJaAynmlR/sjzL6ZkazoierQG8h1gi91jQo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, David Disseldorp , Christoph Hellwig , "Bryant G. Ly" , Lee Duncan , Hannes Reinecke , Roman Bolshakov , "Martin K. Petersen" , Sasha Levin Subject: [PATCH 4.9 19/39] scsi: target: use consistent left-aligned ASCII INQUIRY data Date: Thu, 24 Jan 2019 20:20:22 +0100 Message-Id: <20190124190448.923307908@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190124190448.232316246@linuxfoundation.org> References: <20190124190448.232316246@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ [ 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 2a91ed3ef380..37d7d57cf2c6 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 @@ check_t10_vend_desc: 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