Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp2519406lqp; Mon, 25 Mar 2024 00:52:11 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVdOBTiZl6c89BsIecSqSv3uwo51A6cmK20+AaYiafcllfWHfkN/q3pP1V4HG6CGnOZrlCmtL7XrK4/jJMvivhYSnbqKn0xv78k3ci0fw== X-Google-Smtp-Source: AGHT+IH1puOMdwfD6dfL/96wryJvwPwlLD1Xe82X0LkUgwPAeTviSXTpc+s9mIJCoLn2EVKt3bDQ X-Received: by 2002:a17:902:ce92:b0:1dc:df24:e321 with SMTP id f18-20020a170902ce9200b001dcdf24e321mr7010046plg.6.1711353130794; Mon, 25 Mar 2024 00:52:10 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711353130; cv=pass; d=google.com; s=arc-20160816; b=v/M40RJDyCTUkt3qt3qLSort+RUHNnqTsCRBM2kSd8Df9cacNiF0pf3n8X9e0VJrMm OdXOnXw3dGcMrqIR6LQV6f5mk7FAg6unK3X42I9r0KpjbLSPlYYkloylnSCWI2APKJLq nTQwSETuVxYx9s//w++4tL/Dq+rusuC4qrI4Gn5ALPjRiurHoTFCODvpt+IIIGs+gC/S Tylp2JPJVPpYnHTgCIj2eGOFnqFXVbjsVEDhRGoG05UtT8QGCiQs6mIIU3PbuI5FpIMq 9YZ7TMV/npICbK/5gSaLKkLq82E2QZUKTcs+XxseMYS4OrvNoWE6Ig19l6dgLXv3dvg0 rvdw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=V5ty8kL3fNfDiYXktbT+QxsGGUdFoRk+G/Z1OyMqByg=; fh=zCJ8LEqfc7CTRaa9rC5E32DRSRbh8p5bU3ZvvXpUgB8=; b=H8X9DiIwIoKSJZUzL5hhW2L20NnI/FCj4jr2VNpfou6JtmwpYC4rQBzyVrgNuQuIiu QrMfAi1plWLecQ/fS4dB5FIk/oJShpFqRV41Dmcg6s1BpbdYUn2cJyh+V0ycN+jgslam 9etqEJGhCpejOt6K4sMt1etnYux9lL4N/XvaM5QH2t1SUsYJ78n9Af+Dh60syHZQK5bz ZFGc6/d3JW8+TpgTJa6ZyElCSy5xoYJuJB8I6Wg1ImwcjOJsRpa7MAApnj7OIknDoEPv dN+IFo29X/UT2pcU2TeO+3NZPg8DkOakgablz0aIXYzIoO1IQtymx9nAwzn/Trk/P5jL NjDQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=rmYJNAYD; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115595-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115595-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id l7-20020a170903244700b001deffc5baafsi4912697pls.135.2024.03.25.00.52.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 00:52:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-115595-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=rmYJNAYD; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115595-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115595-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 2E035295000 for ; Mon, 25 Mar 2024 07:50:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 535202519BE; Mon, 25 Mar 2024 02:47:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rmYJNAYD" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E75C1FB71B; Sun, 24 Mar 2024 23:01:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321308; cv=none; b=RtBW6lU4J5SB/C9AsG8naKX/1e0cLtKUA/Snp2OeAdiGt0pfmCU7h4NNepMeFhHu2ig0CcB2sxLWzq8QB7p9L+utKsdWf5NFm9a1YDysxJzwh8GosyGvfFdpy9lZluH2jBQAGuMI+Eh1A+2C6jWH/8ZNUiag/fs5PJJ3VJcK8/M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321308; c=relaxed/simple; bh=mxRUa5CthTVInxGr8kKOevfXkarA6jUudOI+9gLETuc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OW9/zSm9MTKhXTSdGPCYKa0w6DNaR3q5Aih5GPIqAiA7hxjr/V8V0djzaibvvLxWHabQ77quVnHZf9IzRNEvQ5b74zzboB+9TEj2Jl+u7OOlBifQvtPeNlYSMe+01UFvO1/U/b8h30gxkagHq1XdQpEQNUoZS8ovdoN4DtmNDIk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rmYJNAYD; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id B814AC433F1; Sun, 24 Mar 2024 23:01:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321308; bh=mxRUa5CthTVInxGr8kKOevfXkarA6jUudOI+9gLETuc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rmYJNAYDnDlu5kxyRiXiYX2k9RmGHwhcWL+GnPAPD9KTKBEnHj5XBfChQ9ycV2Pzv 3Bh0Id5BWgThcs+gTxu5xsdr9Un60Pw7Zsxa9tBs3dTOPVCnfyIo3kzvDxrkLFAzZA agk3s9SfHrZjRRT+j7fwql0np9imI/Mc7wWX/wOBDVyq4Kkrzfp0iRlwkyw+EGhPq4 pSy+a2GKIBYO52iwVq05fBtOlsRHSVvd6EHJfCijikVKBWuuejDAgtaiVRobJY7Ujw vEfPDZu9uW1iF4xOGhv9XHQbv2xm8RsLEBd5BK8PUu6F57X983EvIgFzwvg7rTcMKN 9t9QdtK0GrBJw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Greg Joyce , Jens Axboe , Sasha Levin Subject: [PATCH 6.6 031/638] block: sed-opal: handle empty atoms when parsing response Date: Sun, 24 Mar 2024 18:51:08 -0400 Message-ID: <20240324230116.1348576-32-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Greg Joyce [ Upstream commit 5429c8de56f6b2bd8f537df3a1e04e67b9c04282 ] The SED Opal response parsing function response_parse() does not handle the case of an empty atom in the response. This causes the entry count to be too high and the response fails to be parsed. Recognizing, but ignoring, empty atoms allows response handling to succeed. Signed-off-by: Greg Joyce Link: https://lore.kernel.org/r/20240216210417.3526064-2-gjoyce@linux.ibm.com Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- block/opal_proto.h | 1 + block/sed-opal.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/block/opal_proto.h b/block/opal_proto.h index dec7ce3a3edb7..d247a457bf6e3 100644 --- a/block/opal_proto.h +++ b/block/opal_proto.h @@ -71,6 +71,7 @@ enum opal_response_token { #define SHORT_ATOM_BYTE 0xBF #define MEDIUM_ATOM_BYTE 0xDF #define LONG_ATOM_BYTE 0xE3 +#define EMPTY_ATOM_BYTE 0xFF #define OPAL_INVAL_PARAM 12 #define OPAL_MANUFACTURED_INACTIVE 0x08 diff --git a/block/sed-opal.c b/block/sed-opal.c index 04f38a3f5d959..e27109be77690 100644 --- a/block/sed-opal.c +++ b/block/sed-opal.c @@ -1055,16 +1055,20 @@ static int response_parse(const u8 *buf, size_t length, token_length = response_parse_medium(iter, pos); else if (pos[0] <= LONG_ATOM_BYTE) /* long atom */ token_length = response_parse_long(iter, pos); + else if (pos[0] == EMPTY_ATOM_BYTE) /* empty atom */ + token_length = 1; else /* TOKEN */ token_length = response_parse_token(iter, pos); if (token_length < 0) return token_length; + if (pos[0] != EMPTY_ATOM_BYTE) + num_entries++; + pos += token_length; total -= token_length; iter++; - num_entries++; } resp->num = num_entries; -- 2.43.0