From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 023BD48A2B6 for ; Thu, 13 Aug 2026 15:30:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635041; cv=none; b=i7YWAw8fNsHO7bw63dFJE/Ya+SE6nWOh9LI90mxPixa10vPEZc6I813PGPTBsY+0E+fNsEazAjPwp1AB6wXxgEECA0d+v77oqw41mpyp3GyFrub+oXMBvDpmM/exeF7FX4N9MAJdmaJ5GsdPm21JiR8eqZj58KBlrFazBnSiMQE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635041; c=relaxed/simple; bh=atvP6J3eoLP5zb6eAsQYmguZHfq7Y8aVIuBXLId6zhQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=dABGS/cVtDN8Ht5Fw/NpkwzyAsMdbLqWe7O6t7KBMdTqdpGI0ARXGNyTb9lGjWaiJ9ahl1pQrcy1dh1mZ3Ld7hPaqXcWFzGc8kSy3lQR+RzeCCxzFN6XXGq+NgBzjZJu7vh02qMQ7SwLPErcC++JlsJwL2y8WQad5oaEYz2jTVk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Km5rBvNw; arc=none smtp.client-ip=209.85.210.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Km5rBvNw" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-84f77cc7302so972379b3a.3 for ; Thu, 13 Aug 2026 08:30:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786635039; x=1787239839; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=FepzhvApFnVO+ELlsD4ByDy5sUKL+A9n8XFq2GWrLlw=; b=Km5rBvNwlbAgPrSyGkp0U/XOPwVnmaZPNAYtlyU0wsDuYGKG5hZ1KRHKFjSGprOu/j ckzxD5flaDxRoLhuI/xb9TC3D4n7kyhyTPPWkINS+sWBzOsAtzN+ozJ/UB/SVnr5pyy1 eGF2dx9MDA+46ii3TwK7IRnwdiY52xK2XDdACyhEKF/o+/2dJgKQOp+J716r2AiLDqhY MiOdT9Exx9mq2RczxVauTGPiJb7vn/bwqlRUViFzL9C8ZbD27BzqTSnsCW2OXOs/UD26 f/g/wZwCjM6gi0YvHH4xUcHn6Wm+aHQT5utNCxWOhVdVDf0a9KjbIf47q/8CVoOQcfXI kqoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786635039; x=1787239839; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=FepzhvApFnVO+ELlsD4ByDy5sUKL+A9n8XFq2GWrLlw=; b=LCjFOGB1HxOO0/zIJr3g8XVgfD7XLZIm880W45wmNj86lXe8XKQk9hCOMSPvttKMI7 h0GLqOtCS/K+k2PJQhpe4Fm/G72nJ0u9GpgHW9B1kFcwFI0qNosm/XbB310L5ZW0B03u LhGV4p+wQU6SxEbnv0OLEA1r4NpnkIeHt+ysNjqYzOgAginDeLIS8rHijKsuuC3p1huy iZi3OSpy43Bk5PoD/SswK8OQg/yKIsygpd7eHVi+P7KdikzZvH431jrLEpqEA7wMgl0e fzztFMOykn5cMH/HYue5oqsdKPey/uGRArb6DF6j5UImPypWNcoquZlntY1GEb6fEFIS XWwg== X-Forwarded-Encrypted: i=1; AHgh+RrB6nP4dW6snPWYxAXb6hbDkiiw4VpDJfH9EzLhWAwY2kZsI0usvkPamMCs8XVhdDZCw32eXEQE6KHhNtA=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1isORSTAxVp00NTSJsvcSct97rEyeD4D+HdbUEoxtNyiv9n+H hLmonzxX6BtIOHLmYcOiMb+O3C8c/ewURP72XCvAT1W+5iLGb7cDjyU/ X-Gm-Gg: AR+sD12BLxNqFL0jbPEJ8pJ1eH94lsVa99YYjOzGUztv0TKuPHfNpHY6Ao6Xykx/Dln vqT7om4YBAvyX3sbcjIVc1ee98VNPO/jQeokrf724IAVqczTrt6xGdbmqfEVA6eJBSKZtEaY7yE jIqVJ3L7TUySCzmflODz/792axJ/Be7l6hk4NoGkjwjtFq5FY4RK+re0+km9yycHwLZ9n3gykiF 3FqrjTfkgWpVrd/md9+R3gO3x1KgLutGC2ok6QnPp+2LIvReu3vudD6eR1ht2GfN2PcH3Kyqpop QYcRVd9Sb+msltAT41vY0a8U6B5T2+3Oh4RUt+PtD4V5n+AoGHBxmOBw4L7FuhCTHfcsPxaFTBP AXNTzIVRVa1lkik4HThZlN/9+lypDWjmQ71WMkdov41ZnNQyAnfMMmIsuNdPfGLnuxnA0p4/SME n/nxG8ZolZFOky6tvGfG9rEDsKXQTFe7eoNCccc8IXxMfWVnTNs9FhS+vzn90hfOokBZCYmNJel a4Eh64= X-Received: by 2002:a05:6a00:3485:b0:845:d6a5:716b with SMTP id d2e1a72fcca58-84fc7514c97mr7766799b3a.23.1786635039061; Thu, 13 Aug 2026 08:30:39 -0700 (PDT) Received: from haichao.tail057a43.ts.net ([2001:da8:e000:1206:3b7:6da1:c188:d14f]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84fc477e53esm1134246b3a.14.2026.08.13.08.30.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Aug 2026 08:30:38 -0700 (PDT) From: Ruoyu Wang To: linux-integrity@vger.kernel.org Cc: peterhuewe@gmx.de, jarkko@kernel.org, jgg@ziepe.ca, linux-kernel@vger.kernel.org, Ruoyu Wang Subject: [PATCH 1/2] tpm: st33zp24: Return zero on status read failure Date: Thu, 13 Aug 2026 23:30:31 +0800 Message-ID: <20260813153032.3951878-1-ruoyuw560@gmail.com> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit st33zp24_status() ignores the result of the transport read and returns data even when no byte was received. The I2C transport, for example, skips i2c_master_recv() when the register-select write is short or fails, leaving data uninitialized. The resulting stack value can be interpreted as TPM_STS flags and let status checks complete spuriously. The status callback cannot propagate a transport error. Return zero unless recv() reports exactly one byte. With no status bits set, callers retry or take their existing timeout or error path instead of acting on an invalid status value. This issue was found by a static analysis checker and confirmed by manual source review. Fixes: 251a7b08213a ("TPM: STMicroelectronics ST33 I2C KERNEL 3.x") Signed-off-by: Ruoyu Wang --- drivers/char/tpm/st33zp24/st33zp24.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/char/tpm/st33zp24/st33zp24.c b/drivers/char/tpm/st33zp24/st33zp24.c index e2b7451ea7ccd3..898e8d01d26698 100644 --- a/drivers/char/tpm/st33zp24/st33zp24.c +++ b/drivers/char/tpm/st33zp24/st33zp24.c @@ -93,7 +93,9 @@ static u8 st33zp24_status(struct tpm_chip *chip) struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev); u8 data; - tpm_dev->ops->recv(tpm_dev->phy_id, TPM_STS, &data, 1); + if (tpm_dev->ops->recv(tpm_dev->phy_id, TPM_STS, &data, 1) != 1) + return 0; + return data; } -- 2.51.0