From nobody Mon Feb 9 12:27:29 2026 Received: from stravinsky.debian.org (stravinsky.debian.org [82.195.75.108]) (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 9148534BA20 for ; Fri, 30 Jan 2026 09:43:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=82.195.75.108 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769766217; cv=none; b=QUCwYXzax35XCfNFzokQM0mF3MYo/IMmAoX0ydl4+dRKfZu81sdGUWlX0UXNBH9xtU8nyjsIMkbDhqng9Pv+1eCUVSkMlhHuR6lZp8cq8pdQOxEAl1i6IQySAjfW+XLODAFZevK8TgqK+58WMovfD5q2sjjikfZiYRm+ByUlT38= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769766217; c=relaxed/simple; bh=eA7mwDVLiBPMB2kYbxKutbeesRnpbG5OSbNE9qojkc8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=AnzDKEVVcSveL100XB5IZKyB7UTukaTUb/HHTL3mTIpPcsvmfeDx5SxF1f6AVSHhXSg4VotDW/cGLMKgo7q8TssENLJuEcG7RykimAh6cUFpdZlgoZlJ4YKUCM7vJARLjfjTjESv6SkODFodho4vGmanflNg9CM2fc7fa591728= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=none smtp.mailfrom=debian.org; dkim=pass (2048-bit key) header.d=debian.org header.i=@debian.org header.b=TkFTZZJy; arc=none smtp.client-ip=82.195.75.108 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=debian.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=debian.org header.i=@debian.org header.b="TkFTZZJy" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debian.org; s=smtpauto.stravinsky; h=X-Debian-User:Cc:To:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From: Reply-To:Content-ID:Content-Description:In-Reply-To:References; bh=jkAWFuvv+ArDCGSdOQQBmz73cYAuTCEAPe0J1SHf44Y=; b=TkFTZZJyWe2WVDrtacx55jsTxk zdcg1FQUcJLM2dL2DBEjClFfYdyP2W1IBDL+Cabw+WZImmqc4Z7qunpceZdvRnWpQSvzH/lpGHT/C FdAQ+vzQg1enEifEf+TDV0LTYVeHgJOCzaliJ+Mc991HZ8DBfZK9pNGjGWjSusA8V5GKpC+CtWFe6 dYQLf1lXsbvuGAU9VV2FK2XQVGY/EwWfLkD4aorH3nBx4vk9qAoTtUiW+20d9CGQc7NQ0aV8JUZy4 YHiFqQkwEn5KZoqmVo0e95tFZ19TrOiS8PuW39MW6Yt7zB+N9QLqUl9kH/NswNjaq5rBsb8MHhPoR 3bNHa4jg==; Received: from authenticated user by stravinsky.debian.org with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.94.2) (envelope-from ) id 1vll2J-001cgK-EL; Fri, 30 Jan 2026 09:43:31 +0000 From: Breno Leitao Date: Fri, 30 Jan 2026 01:43:09 -0800 Subject: [PATCH] arm64/gcs: Fix error handling in arch_set_shadow_stack_status() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260130-arm64_cgs-v1-1-c9b6942b6b70@debian.org> X-B4-Tracking: v=1; b=H4sIAC19fGkC/yXMQQqDMBAF0KsMf20gCRprrlKk2DjqFGpLpi0F8 e6iLt/mLVDOwopICzL/ROU1I5IrCGnq5pGN9IgEb32wzjemy89Q3tKopmzCxdXWV71jFIR35kH +x3VtT+v3/uD02QOs6wYC5bf7bQAAAA== X-Change-ID: 20260129-arm64_cgs-496817025d1e To: Catalin Marinas , Will Deacon , Thiago Jung Bauermann , Mark Brown Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Breno Leitao X-Mailer: b4 0.15-dev-f4305 X-Developer-Signature: v=1; a=openpgp-sha256; l=1283; i=leitao@debian.org; h=from:subject:message-id; bh=eA7mwDVLiBPMB2kYbxKutbeesRnpbG5OSbNE9qojkc8=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBpfH0/rRhjZ7Vh0Y39ry5XIxGVsCmjNUcfBQvkz oN1AKzufCGJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaXx9PwAKCRA1o5Of/Hh3 bdyMD/9nKJcrMHhm2IpB0sBYiK1IR7u2erqzh7eIIoC3f7m0O6Sqh3Ug8UIOU/tfuqe0IgZpL+1 vRDla7uvaF06yNJN5MjuM6U//K6kJoRmupxxd643A0GN1IJvm0Auup3Y19gocd32usBc+N0sVqu /295dRn9GJSytg+JBcd2+udZQY/8vJnUdrEj/awGuBY0PTxJ9Vy23byCOzIO/twFuyxb88XQrAD ysmVXpm2VzzkYa4ZT7v1KpP8pZ33ZxYtzwLWq1kAGbT9v6osj4YjvX1XO7J78NZstWVSPFQPX/w N2QTTkdEwoQvVRemGvnba1PZ8NfWSRqBEiiIsTpoxnC/XUUXPndSiZQ9QJbHQwCJ7wkG88NdZKt p7l3uZNTG4SHOOKcBRD+Hv4qz04c9AEm0ISOYSvBm7et0CwBUcqfuFVaviK742OG0iOyx7rwDBI QlJWCU1DWDwDi7muXQuW7i00YJXsYFeFawe167hUI8y85jcac5S5vcIyY5Z3IrQ5pihodGi1+9k 68HNmobORUOFxV2okcogtAu0xwzSq1i0h4iLCvtruzGB5hBMVGdF9Tnm1fFTTEfeUyp7QuFZ7if 2oBjefa3YQJlkaydoE4LHVvQst1R+kSVFXui+kH8dZchBZljvlRiVj7AUkTj1XUFEuxk/yBUCaN p5Q8hMqF6cxHx5A== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D X-Debian-User: leitao alloc_gcs() returns an error-encoded pointer on failure, which comes from do_mmap(), not NULL. The current NULL check fails to detect errors, which could lead to using an invalid GCS address. Use IS_ERR_VALUE() to properly detect errors, consistent with the check in gcs_alloc_thread_stack(). Fixes: b57180c75c7eb ("arm64/gcs: Implement shadow stack prctl() interface") Signed-off-by: Breno Leitao Reviewed-by: Mark Brown --- PS: This was compiled-tested only, given I unfortunately don't have a hardware to test on _yet_. --- arch/arm64/mm/gcs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/mm/gcs.c b/arch/arm64/mm/gcs.c index 6e93f78de79b1..efce7642b1d7b 100644 --- a/arch/arm64/mm/gcs.c +++ b/arch/arm64/mm/gcs.c @@ -199,8 +199,8 @@ int arch_set_shadow_stack_status(struct task_struct *ta= sk, unsigned long arg) =20 size =3D gcs_size(0); gcs =3D alloc_gcs(0, size); - if (!gcs) - return -ENOMEM; + if (IS_ERR_VALUE(gcs)) + return PTR_ERR((void *)gcs); =20 task->thread.gcspr_el0 =3D gcs + size - sizeof(u64); task->thread.gcs_base =3D gcs; --- base-commit: 8dfce8991b95d8625d0a1d2896e42f93b9d7f68d change-id: 20260129-arm64_cgs-496817025d1e Best regards, -- =20 Breno Leitao