From nobody Sat Sep 26 19:11:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1790213232; cv=none; d=zohomail.com; s=zohoarc; b=MJnlLf9KrtjXf7XSYlqzaE6c91zr+bLGQxT2rl31rMIqZBAX6UXwXHQb2ks7JGGpGi9VN1TZE3zvp59nPzAe4SJYWmwxkfeICLWuVWCp3+nHRbjLpVz+JH+NXpMAqdPfmPjbyKHWfqz1MBeTJpRgKF2FEKA4FxwvW+y+Lm5YxV0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790213232; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rK5QLBeEyalydN+qAHOxnhLxrUTjEpJWdnQys/LNzik=; b=Ss0WWYSeSnZm0CW9/Q5gyUlJwKBFnp82LCN/U9HnJ2XqxSo6NPysTIlr2cV7PaDKT44JEhqVb9M36CEZF2HthrjPYXXokVv7V8i6nWZiB8DJ7bH+FrBTIeW+C2oK6VTm8hgislr+qpnv/gM4sfcuGCLVc3IcQrpNpWPZB8TMtzY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1790213232414674.1488617722773; Wed, 23 Sep 2026 18:27:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9YDZ-00016f-Hn; Wed, 23 Sep 2026 21:25:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDW-000152-J4 for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:43 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDU-0007Kx-Sn for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:42 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNZZPC575705; Thu, 24 Sep 2026 01:25:38 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskg2pfh6-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:38 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNHXCL1132907; Thu, 24 Sep 2026 01:25:37 GMT Received: from smtprelay05.wdc07v.mail.ibm.com ([172.16.1.72]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gvb8jukm8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:37 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay05.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68O1PatI24445484 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 01:25:36 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8F28458061; Thu, 24 Sep 2026 01:25:36 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1808058053; Thu, 24 Sep 2026 01:25:36 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 01:25:35 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=rK5QLBeEyalydN+qA HOxnhLxrUTjEpJWdnQys/LNzik=; b=F1FbHHM+fKeXhMyJIJMfnrtJpfylgUpSZ jpOlKmIWRndVJFuZhO5cArvnI5RYcTMtb0k/ZWc9oBpTVHekVjky4rtge2R/VQRb oQTn1QwOueLGIA7lHcFSGbmQmmGqIzx5pBwwlqUt8YGFeny6vR1f2v4/ONBUcoFp wksG5rmmAFVglMpxh0+C60dj6Z3GlI9V9+0mR1Kp/fg8TLcMcG0mk6rPv9DMpkLN Yglp/N30H3YE4Qn5qTL+61sJuS5oxen7BWws9uv06i8v1H5M4G/66ykxJivVWxA1 NK2KeZOkp1yGjO5ytkZlnaEHjegfUh1vnrOxbp6/2t8GkH8hguTOg== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH 01/10] tpm_util: Pass TPMVersion to function writing fatal error response Date: Wed, 23 Sep 2026 21:25:18 -0400 Message-ID: <20260924012527.858527-2-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924012527.858527-1-stefanb@linux.ibm.com> References: <20260924012527.858527-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: zoGU40poigFTYUf3KoBRtGP8yehlN6TK X-Authority-Analysis: v=2.4 cv=I43w19gg c=1 sm=1 tr=0 ts=6ab47c12 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=ZdjYBk6P2T0J8aFbIr8A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX99WqA0ZY11Fm YhW9L4o/5x/bkYb97KHru/zPnCPnW+tRg+9FsjY3YibNh8pYjw8uz3ReD8uCIEvjkNCTmQntftU OJmTcb4UhevmekP4U0BDaDVz84OVUfO7RKO6GNIi/T/u1tDtO7unL/n3+wm3b+bSNIFQ2jrqAmp UOIHEKxVX/tatWdVxW9IDW0Ynq8TjFdRM5QidWJzPNDCcKgihtADRxIWv2m1ChTITZigkFccuyk DH+kgJkt1uUREWDdx7u5YzYS6UW4StC8qHYNKH08zZvu2hGOVFLdBBoNklyzb4Ya7t8VZjJcRkF cieqVqncFeeVSDzh3Azf3xK/jOasKJn/skXNSXCO5bTF78Zoi+IcJJRB3jfEUT8QLYP3jYtcMhD ylVgUsadis0xo4jU8cFMgJpA4hF4du5pvK/fA5YsQbGd3Eh22mdy2fQ4xtSmNyx054Nzi50voyc J0A7yHf1UEl8JbNMEEQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX6q1rblwll/SH 1AYoXBVZciVvtoopfnj6aWIOcsli9fuOWHvWXYrSpKIxOVOq1gIbs+LmkpY99VtZX0WlESQWwAI iVaks9A1OnQTOntCZIpSYyrt2T/WPhY= X-Proofpoint-GUID: VspG0_H77QChzxHmC7eTDz30z6sldQG_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-23_08,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 adultscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609240006 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=stefanb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1790213233620158500 Content-Type: text/plain; charset="utf-8" Have tpm_util_write_fatal_error_response write a TPM version specific error response with error code TPM_FAIL for a TPM 1.2 and TPM_RC_FAILURE for a TPM 2. Adjust the callers. Signed-off-by: Stefan Berger Reviewed-by: Marc-Andr=C3=A9 Lureau --- backends/tpm/tpm_emulator.c | 3 ++- backends/tpm/tpm_passthrough.c | 2 +- backends/tpm/tpm_util.c | 12 +++++++++--- include/system/tpm_util.h | 3 ++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c index 95d2de2f48..16ae44c8d7 100644 --- a/backends/tpm/tpm_emulator.c +++ b/backends/tpm/tpm_emulator.c @@ -270,7 +270,8 @@ static void tpm_emulator_handle_request(TPMBackend *tb,= TPMBackendCmd *cmd, tpm_emulator_unix_tx_bufs(tpm_emu, cmd->in, cmd->in_len, cmd->out, cmd->out_len, &cmd->selftest_done, errp) < 0) { - tpm_util_write_fatal_error_response(cmd->out, cmd->out_len); + tpm_util_write_fatal_error_response(cmd->out, cmd->out_len, + TPM_EMULATOR(tb)->tpm_version); } } =20 diff --git a/backends/tpm/tpm_passthrough.c b/backends/tpm/tpm_passthrough.c index a9f35ab7d6..8a4f8183c7 100644 --- a/backends/tpm/tpm_passthrough.c +++ b/backends/tpm/tpm_passthrough.c @@ -118,7 +118,7 @@ static void tpm_passthrough_unix_tx_bufs(TPMPassthruSta= te *tpm_pt, =20 err_exit: if (ret < 0) { - tpm_util_write_fatal_error_response(out, out_len); + tpm_util_write_fatal_error_response(out, out_len, tpm_pt->tpm_vers= ion); } =20 tpm_pt->tpm_executing =3D false; diff --git a/backends/tpm/tpm_util.c b/backends/tpm/tpm_util.c index 264bff22a9..cdb7a48861 100644 --- a/backends/tpm/tpm_util.c +++ b/backends/tpm/tpm_util.c @@ -87,12 +87,18 @@ const PropertyInfo qdev_prop_tpm =3D { /* * Write an error message in the given output buffer. */ -void tpm_util_write_fatal_error_response(uint8_t *out, uint32_t out_len) +void tpm_util_write_fatal_error_response(uint8_t *out, uint32_t out_len, + TPMVersion tpm_version) { if (out_len >=3D sizeof(struct tpm_resp_hdr)) { - tpm_cmd_set_tag(out, TPM_TAG_RSP_COMMAND); + if (tpm_version =3D=3D TPM_VERSION_1_2) { + tpm_cmd_set_tag(out, TPM_TAG_RSP_COMMAND); + tpm_cmd_set_error(out, TPM_FAIL); + } else { + tpm_cmd_set_tag(out, TPM2_ST_NO_SESSIONS); + tpm_cmd_set_error(out, TPM_RC_FAILURE); + } tpm_cmd_set_size(out, sizeof(struct tpm_resp_hdr)); - tpm_cmd_set_error(out, TPM_FAIL); } } =20 diff --git a/include/system/tpm_util.h b/include/system/tpm_util.h index 1858693225..3ab2fe693d 100644 --- a/include/system/tpm_util.h +++ b/include/system/tpm_util.h @@ -25,7 +25,8 @@ #include "system/tpm.h" #include "qemu/bswap.h" =20 -void tpm_util_write_fatal_error_response(uint8_t *out, uint32_t out_len); +void tpm_util_write_fatal_error_response(uint8_t *out, uint32_t out_len, + TPMVersion tpm_version); =20 bool tpm_util_is_selftest(const uint8_t *in, uint32_t in_len); =20 --=20 2.55.0 From nobody Sat Sep 26 19:11:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1790213212; cv=none; d=zohomail.com; s=zohoarc; b=jB+6IWtVr4O/8jCNYXWWzml0/EpH2zkH5DU9FJbgVaJ2N7IcPofd5K4yv+Q2cor+usjZWZxJdTCvYZJbbYvE9uzOa+mKCeBrR7IRwj8Kpy/9+rCUsqQnPPIh4FA80C01FibIAZHGDv29td2zPyvISR/O55I2RXNlfhGQrcyIVy8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790213212; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=C/8P1YTcPWWPBzT3eFseSEm1cLaHJbQIYnaSM2V9uuQ=; b=PDRsdqZax1dqeUr3NPO0mXVShYueVyB/zdFLQ4Vc4WTn5hcaBcev8q/ycROnTMwjwfZ7gDD9tiehde3HhG0GFz4Kg/eGxw+wc1xBcfwwNC91t5Cc9mpoFFJ4zVvjnWgGUJIxJBUaKFL5T4f69SZ16hMY/sAlEKhyK8QgxgPMj04= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1790213212621183.70113735857421; Wed, 23 Sep 2026 18:26:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9YDY-00015v-R2; Wed, 23 Sep 2026 21:25:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDW-00014z-BM for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:43 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDU-0007Kz-So for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:42 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNZah0414133; Thu, 24 Sep 2026 01:25:38 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gske1nvpq-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:38 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNHU8o1079976; Thu, 24 Sep 2026 01:25:37 GMT Received: from smtprelay06.wdc07v.mail.ibm.com ([172.16.1.73]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbt2uf30-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:37 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay06.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68O1PbtU28180992 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 01:25:37 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4216F58063; Thu, 24 Sep 2026 01:25:37 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B2F8858059; Thu, 24 Sep 2026 01:25:36 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 01:25:36 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=C/8P1YTcPWWPBzT3e FseSEm1cLaHJbQIYnaSM2V9uuQ=; b=s2ZTF338smj/mQlzg1itxZYbmjEd30A+Z CS2ZwNnPNXrWy/wLCj20s0vPKR9bBdBVWw8TzqLcbNCnd21AO5AQI0tYQtkRn/dn tZG9zseqA2ALDV4yIl/m3RCZsQs82jhlu0Y/LjV5LPTNts9TeUMI2wPTEwtsJD8Q EMApYJBcLdI7aQPoaO9TT8YlCFR/aGlRiz4t8J4PPjbZMlpPiyj55oxnoOhulK31 pQv2FHchLFPWYuGxMvMGjU/FNdcLQQaF5qAYIClf4nuRvfsNzUF0m1ioe6vGzSSR zRuIEikByXwJVuo65uZWHYu4cmEirxHZwS5KcPt4VDyekS6krNk2Q== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH 02/10] tpm_emulator: Reject TPM responses whose size is too small Date: Wed, 23 Sep 2026 21:25:19 -0400 Message-ID: <20260924012527.858527-3-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924012527.858527-1-stefanb@linux.ibm.com> References: <20260924012527.858527-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: mta3H4-PohUHbmqPLTwMoTkO0Ln6hn7F X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX21hRMCv9Wfps nckx+HsQx6Jjf50Lw5dNOpF/Z9drjZ2xz42ewzQJUop1oCbTHsUEvoXODeBgpwecPza3TpENyg5 BcwL6JeBRM9FkPDo69CnBt2TvLUZzFNcLK4fCgpKFDw/v2NZfpv0Bvecml2z5y4BM7HqSrStRMk GvFPw5G5MVmR3g7XyCEj57bWrtGpFKdyvAllpq6OLF1SdpoMdZ+DxA+8nhrn3X32mYPk8b5Kojv 1yW1sLv5hyxI/TBKPqBpCTYr9r5dxxICLjRi8Kq3WB1BWv29cee6NQhdfpmfT3Gbwdoh9YrSVZ7 I2QYBeV4FEZHqe1QB8vguudjxn29Hv5Yv7SX60TjBZbzOnRgAgXpX6qx7rk7x4qfUGQiygiOvK+ upfI9G4O+8eaWRQGDRtTAPSHA+vxUioFmtjaRvCo0b4mnLUGrBKteesAAHM65r5/tz0+u3g22D8 e3uCqkPpm9UuttTHDmw== X-Authority-Analysis: v=2.4 cv=O/KsLx9W c=1 sm=1 tr=0 ts=6ab47c12 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=luQVlvl-W8lCxKXVFxcA:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX+ouR1FUXhSGB Gu4mutYRh5ELFJFx7yFZu/48VeL1HpOrHQn3XtR7z/43DZMt95RUn/QVzqls9y4GzMFjWxZg/pU KyCDUgTpGKNaswpJzObfdLW0Vw5eVfs= X-Proofpoint-GUID: UTJZm0n8j2iEZCY5rvWufLEWAdxW84B0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-23_08,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 phishscore=0 impostorscore=0 suspectscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609240006 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=stefanb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1790213215766158500 Content-Type: text/plain; charset="utf-8" Reject a response from the TPM emulator whose size field indicates that the response is smaller than the size of the header. Signed-off-by: Stefan Berger Reviewed-by: Marc-Andr=C3=A9 Lureau --- backends/tpm/tpm_emulator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c index 16ae44c8d7..9c95b4d878 100644 --- a/backends/tpm/tpm_emulator.c +++ b/backends/tpm/tpm_emulator.c @@ -202,13 +202,13 @@ static int tpm_emulator_unix_tx_bufs(TPMEmulator *tpm= _emu, * size) */ to_read =3D tpm_cmd_get_size(out); - if (to_read > out_len) { + if (to_read > out_len || to_read < sizeof(struct tpm_resp_hdr)) { if (qio_channel_shutdown(tpm_emu->data_ioc, QIO_CHANNEL_SHUTDOWN_B= OTH, &local_err) < 0) { error_report_err(local_err); } error_setg(errp, "tpm-emulator: Disconnected after receiving " - "unacceptable large response (%u > %u)", + "unacceptable response size (%u max: %u)", to_read, out_len); return -1; } --=20 2.55.0 From nobody Sat Sep 26 19:11:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1790213232; cv=none; d=zohomail.com; s=zohoarc; b=Gt+4T/hsmOY+U/jpejEjmERdWbT7hQ07wFKTCa6sAfVnQufcDrIhTeEalveEEm1HX3a923woQUOE7vir1G6DHUlIlfSHRs++N6LBKGHgY5RSnvIFWRx1+P+8ncMo2513E3BdIkin/On89u/JgGls9ejv+Us9dNa5uO8XJoqYPww= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790213232; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=IDQ176Hut0VU5cv9YosY4OsPnEvKopYP8zycheIkTqU=; b=QgBzmFRkaqTDU7PZTthadqRuhszxtT3yh2cyyWPnYv313atd3jvVBnT6slambjwmYBlFlFLqaNyInVLx11e0r1/qajAHK6X6OSAu4uznmJzJ515Y7WY1RrL3YXDV1Flwp4aV8CIXG1fok8V4/In2HMcXc5eoXYK1Kn1t+b0QKBs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1790213232860810.563186958307; Wed, 23 Sep 2026 18:27:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9YDZ-00016z-Qo; Wed, 23 Sep 2026 21:25:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDX-00015Q-IR for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:43 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDV-0007LE-1f for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:43 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNZJH9568617; Thu, 24 Sep 2026 01:25:39 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskgsecum-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:39 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNI3DL1075258; Thu, 24 Sep 2026 01:25:38 GMT Received: from smtprelay06.wdc07v.mail.ibm.com ([172.16.1.73]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbu8uf28-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:38 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay06.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68O1PbcI27853510 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 01:25:38 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E34C758059; Thu, 24 Sep 2026 01:25:37 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 63A7858053; Thu, 24 Sep 2026 01:25:37 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 01:25:37 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=IDQ176Hut0VU5cv9Y osY4OsPnEvKopYP8zycheIkTqU=; b=nQGAfPUe0Vfe82cRt70+V95dMhb0zGHoX nUelpDqmSUvKLDQqt2ZB1cR8O695OnUv2SbMDfCMFRjVH4l9fJMwKlC5pA91lqJo gXF/+YYusvYhCDxEV1qGhM/7AXhVzlfKgqbEWvf7M0GTX/WMNCPMiIbqhjzBrTGI UPB8liQxz9AnQJ7pfFgcZGgnY1Owe90uyNb68hZ0WOCMhWyVL4zYvVxq3uKQeKo0 F6aDUBe+NdDKppA7aCeF3jw8I6H5oXEZqWBdjmn3gbhTz3R1xIjEDyI7p8vLI37p dq88c7v5Hdc+T4E1M/10f/53nGvZpc3IkKfU6kZuVamOWI4e8DtDg== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH 03/10] tpm_emulator: Reject sending commands smaller than the request header Date: Wed, 23 Sep 2026 21:25:20 -0400 Message-ID: <20260924012527.858527-4-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924012527.858527-1-stefanb@linux.ibm.com> References: <20260924012527.858527-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Authority-Analysis: v=2.4 cv=V/XoQuni c=1 sm=1 tr=0 ts=6ab47c13 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=qVDuPxsLud46wrm4fkoA:9 X-Proofpoint-ORIG-GUID: 3rOx48Z-YaVSdKXHuIsF3oPC-s3rA-h5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfXwnfBu8OJIyit sOd3pdrYsnZqCx08XVpruFo9mC7Z5T62uDOZ6lNQQTsMMe22xhItMlTQdp3nqcP08ovxvpWECbi DFdtkUiRHTCaPMQG5XM/MKwpRAzuM1zDQlWdWg8SqubC9QsgFv+PRFa1Eg2FVfAMgpzy8Tu3qej Ig/xarrlB+I9cWiwvvjLlJjq5IPi4AlH+i62cgUqtclU06GXTrGNxQeLk6kHahRSdlkKjDISR7U su8n3GDfj1dTOjmsnobxYd/Ik9MYFo9doHple1SY4VAl4HnI81OiZ7Lx5a6xLu3LwwoUQhReao/ k9Lx0iDkWO4kN75OWYcoct/cyAUc40Lt3H2lcAh5fX0sEBU+dvHmYm1jdsbWTHr0DgUOg2hZGqs JXeQo8mCB3CYB31aa3Gy2GHBKquQ5McyLHwIbQTw78A5td8v1cwkmXY7iaXDWATd48XP578nxqX henwDbBt4No7JYNL1cQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX72tyL3MR6MUR 4M5/q1GVO95WHl66XbPH+I6I2jbK6FV+tYELQrL+q1YwKkNZW+n49uKhfKunT96BqJ6Y4Jgg5Up K6x0nOSG8WcOC+TNhbbnDqCebbYC9Wg= X-Proofpoint-GUID: tVAkbe5bCSEzvNGLvLbz2ZxYkmYiydPN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-23_08,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 malwarescore=0 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609240006 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=stefanb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1790213233597158500 Content-Type: text/plain; charset="utf-8" Reject any TPM request from being sent to the TPM emulator that is shorter than the size of the request header. Fixes: f4ede81eed29 ("tpm: Added support for TPM emulator") Signed-off-by: Stefan Berger Reviewed-by: Marc-Andr=C3=A9 Lureau --- backends/tpm/tpm_emulator.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c index 9c95b4d878..0c9e32f36a 100644 --- a/backends/tpm/tpm_emulator.c +++ b/backends/tpm/tpm_emulator.c @@ -181,6 +181,11 @@ static int tpm_emulator_unix_tx_bufs(TPMEmulator *tpm_= emu, uint32_t to_read; ssize_t ret; =20 + if (in_len < sizeof(struct tpm_req_hdr)) { + error_setg(errp, "tpm-emulator: invalid request size %u", in_len); + return -1; + } + if (selftest_done) { *selftest_done =3D false; is_selftest =3D tpm_util_is_selftest(in, in_len); --=20 2.55.0 From nobody Sat Sep 26 19:11:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1790213193; cv=none; d=zohomail.com; s=zohoarc; b=Fz5Mgepod3jg8gp/r0ubmuGBM2OFYZhEfH1J0Y6ZJYahLneMlIP2Mv8wG/xCLaY/oeMHPnu1m0c7CTN9iq24dlq03k6su8XDJRE5mbSpwIwKJ1WyF916Q6RZn089nLeCAeMCR3jE2PoTKqJm98IMdBupSz6RdrS5HbfSEs/8/do= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790213193; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=AZAtuypC0ntxk3hzWhwRNPxjszOzQm6rhrEZ8MK3qH8=; b=dBx1dznM3tcHOwB23whfPVqt4CpC6FXJ4wT9OoRT5kFaeCYJibXP47IxOZlijAPayy/YvyU7gkqi+4roi9N9xLpNk1dkVwZamjlEq7Oua/K1AxaiF3C18s8NfpsIZUGM6VE39x3VTJdEeETTu/aU8IeHhtj04TE6gAnZKT1J+0Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1790213193719538.6251739264919; Wed, 23 Sep 2026 18:26:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9YDb-00017q-LL; Wed, 23 Sep 2026 21:25:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDX-00015e-Us for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:43 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDV-0007LQ-Cs for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:43 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNZSDt3589066; Thu, 24 Sep 2026 01:25:40 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskgqnr7u-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:40 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNHaIc1132960; Thu, 24 Sep 2026 01:25:39 GMT Received: from smtprelay07.wdc07v.mail.ibm.com ([172.16.1.74]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gvb8jukmh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:39 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay07.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68O1PcIW51118504 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 01:25:38 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9480358059; Thu, 24 Sep 2026 01:25:38 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 13BA758053; Thu, 24 Sep 2026 01:25:38 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 01:25:37 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=AZAtuypC0ntxk3hzW hwRNPxjszOzQm6rhrEZ8MK3qH8=; b=gqY2LdJBpZFjVeRNG1N2u/C61A8ita/Tu WsoYkg/rbBnu6lkikFDhR/nQS9m5Vtv/sByfvqjuZvrRYi6FT9dHzYtS+TIWQVoY 8qrGYeSE7c/vR8Ufu6MfUQxddhC8hCxFkeGO8o+yVfbREIGsS06LNNPdH3/q8okV /qP7K4W7Hs/4fHDaxp2e5bhBkrQqe2sk0mo4z0TVFCg2gYS41Sjur8F+0shD36r+ NNEy5dg/CRuYawZY/fHtgxNnDULFsJQ56CVw0gIQMo4BTfDc8q4yUhymWEvwOdBu tGmeT+IM7XQ6aHN1T/HnBwE3QrG/oG11S0PhpuYHqKBqk6jn33MTQ== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH 04/10] hw/tpm: tis: Only read from response buffer if rw_offset < len Date: Wed, 23 Sep 2026 21:25:21 -0400 Message-ID: <20260924012527.858527-5-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924012527.858527-1-stefanb@linux.ibm.com> References: <20260924012527.858527-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Authority-Analysis: v=2.4 cv=G+OJgNk5 c=1 sm=1 tr=0 ts=6ab47c14 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=vkKK9v0PSp4LbjciNHkA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX6aQZ93Csaqf1 bmlKzAqq+kbRCwDch4h44AePaRbnHn/0nfOn5eaHK4FG4W1cgHVr25qMB/l5uE5TP7Ej+jkcvw0 EskJPTVaC7o41ac2r9hyK3WRlFdD8aDFlHD5wAoyQLt99sN1rI/MD7QDrzpkU95nTHO+Sx67XRq ytXrEv5aZ1dXcwi/eoS5bjSdnZHJTWrOY86jZUzgiqPz519X0tsTOeL2CVSo5243Oue+lpCz6zc hqdnI3BZT7ji1Ouo8JGvUnntcNeri9NM4YSyNBTJKAU2FF3ifwFb58NDhtsXZB/KKELsokuuDLK tyCqWUsxO9z1hXIFdo79OOgT9518Q2nIFq1vxyFmK4uy6hMuaD65qk1Um5Uy0ND1ihImm1MZlin 7cUeXd8bMyz9CbIS1akhLJtk7iNzhpgZ/OQ8ewYzAzWERZz0Z70QYfh2QYgsCmKXEwBy6hBpG54 +kceqgEtYLcQ9PP/7Og== X-Proofpoint-ORIG-GUID: QHIt2qrCwXv3LEm2aHB_EdNbd_bC1ywP X-Proofpoint-GUID: 0WRTChAZSOfjM3QjVzxAcSeUOxE2YyjX X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX6Gs0PvM1Zy/D Us5rDVzRMl7f8kibu7BHWF4aEw7ryclYkN+p5kuxqmyt5+PZTRj32X3pu4rkA/f9dNE7IzKNhmH Pg6f5VoWN1nosnH8VJg0uoBWQWd+mZo= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-23_08,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609240006 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=stefanb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1790213195855158500 Content-Type: text/plain; charset="utf-8" Only read a byte from the response buffer, if the rw_offset < len. Signed-off-by: Stefan Berger Reviewed-by: Marc-Andr=C3=A9 Lureau --- hw/tpm/tpm_tis_common.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/tpm/tpm_tis_common.c b/hw/tpm/tpm_tis_common.c index a134d5c205..4ba228116b 100644 --- a/hw/tpm/tpm_tis_common.c +++ b/hw/tpm/tpm_tis_common.c @@ -273,13 +273,15 @@ static uint32_t tpm_tis_data_read(TPMState *s, uint8_= t locty) len =3D MIN(tpm_cmd_get_size(&s->buffer), s->be_buffer_size); =20 - ret =3D s->buffer[s->rw_offset++]; + if (s->rw_offset < len) { + ret =3D s->buffer[s->rw_offset++]; + trace_tpm_tis_data_read(ret, s->rw_offset - 1); + } if (s->rw_offset >=3D len) { /* got last byte */ tpm_tis_sts_set(&s->loc[locty], TPM_TIS_STS_VALID); tpm_tis_raise_irq(s, locty, TPM_TIS_INT_STS_VALID); } - trace_tpm_tis_data_read(ret, s->rw_offset - 1); } =20 return ret; --=20 2.55.0 From nobody Sat Sep 26 19:11:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1790213208; cv=none; d=zohomail.com; s=zohoarc; b=bvWhEAHkIMHUsQ/Cmt/xk9yPajs2W+U6O53ILKKQj9zvErBie280HZaxzjsuKNhMr1XwNH6YuuQK3IZPovravzwL5q+1PVeIXY9arVdWQVUJ+qTZkyEr/H8fJMSVQMmNIx/RziFYIskH3b2Q3UeL5UxmKgqNTQUcOCj2Brzpo7k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790213208; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KZJnzYue7WWe7Vi2SkaJjrYjVg+Wm0wS1eF999/2WzE=; b=gUsM4Evnp805qiJV2+E4rGfeYdRiYMUbwvUSjn6YH1W31FebnwsfVGfmtOcUz9jJ7Km1GxfkN4eNUY6IONRFfJMyO8p8Fzdod0PtYX/CI5Tks8vYzvv8Ck74+D7/ho97QnhIkL7AfFSX1yxOVzU6KHqV3W6C1c/na2YKrA6IyY4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1790213208878210.56647509080483; Wed, 23 Sep 2026 18:26:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9YDb-00017g-AY; Wed, 23 Sep 2026 21:25:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDY-000161-S2 for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:44 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDX-0007Lf-28 for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:44 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNZmji569262; Thu, 24 Sep 2026 01:25:41 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskgsecv1-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:41 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNHSdq1079959; Thu, 24 Sep 2026 01:25:40 GMT Received: from smtprelay02.dal12v.mail.ibm.com ([172.16.1.4]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbt2uf3a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:40 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay02.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68O1PdLZ65601918 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 01:25:39 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 44E0D58061; Thu, 24 Sep 2026 01:25:39 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B91C758059; Thu, 24 Sep 2026 01:25:38 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 01:25:38 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=KZJnzYue7WWe7Vi2S kaJjrYjVg+Wm0wS1eF999/2WzE=; b=Vg9AXGaxFnWOtPUZJ0wm4tieFb8Wyescp /B6I+SHiBgxwfIFGHYz67qNc7Tz4CsOSEcW+CkpZBuyTeloRAr6Gbme5m4aCVWDT 5xiOLR+GAxGb2Ne5ZjPA5SrilagIGMYGzkxZ6VwbpnioRGsGsTGV2Iw4Ux5ijUnh rjdB9S/g+VPZKsd/IS5f/xlrejnugR5aWfbW/R/ADlyRgwOTDFPuQpu5G0aD1MdM tHtvobZdipVQ5zV/uM8rkCN1+P/2JQAjVkZMBNfcc2uqyw8sWnH2WuvdfrngMhdK X9Ze7SY+xX0/8seyyjcYwFzC23sepUA9PvGIeyNHnBsFC2MVuvmUQ== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH 05/10] hw/tpm: tis: Use uint32_t for len to avoid truncating size of command Date: Wed, 23 Sep 2026 21:25:22 -0400 Message-ID: <20260924012527.858527-6-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924012527.858527-1-stefanb@linux.ibm.com> References: <20260924012527.858527-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Authority-Analysis: v=2.4 cv=V/XoQuni c=1 sm=1 tr=0 ts=6ab47c15 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=RY3EVia8NYhRY2h5:21 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=Q9dn6whS7C7IXuWMxioA:9 a=zZCYzV9kfG8A:10 X-Proofpoint-ORIG-GUID: xRA97vmJgKbVd82JXMtSA9-38aL4d897 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX9Qjw5qbR8iQP 941sSd1U0TKFEM0XRB4mFX/7X++MgljLxbDbRXOaiUtSeuZM/lAooUG3tyTQqxJcubZbJaqj1Ls 6o+22MGFpoio7ManOzbYSsOXPr86AeBNGqOxsZhWJomzg/2jvybeJPa/isxxPhq9NjD7g8uSGBv oib3Q5zIV6uvf71asCGkhYRUVLrRMW8GspUBuRVtZKmMdP+vphFyaa3v14VMEmDQPCYzAE6Rfs3 jDGpwpj2anhFN+ru80za4O7nuqSGvgmXkdTC+6bzbsQ18ccigZ19MeYhvvNe5/yXfV+GOvnlnLS eBH4h5l69qz2Dclgfs8ZnbfdQT22gijaj6UbvM6IOTNJabW+eZjgNOuHkeaU+AitrvI5raz+t6f YRnUWOy4sOwVHkcXEj6P6u/KI29VmBC96tU9XThk8LfcwVCX4czIKcL2VBFMi4r0Tv6lqox8rU9 1JMNxCKtrOIW4za5+Bw== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX6n2OzxHwcDrI TIISsw+rmfWTT/ytxHkSsaD/c4fN1bN1gzGJBtUDWrg4KIPQTaYwwmSQiWkLwqiYqMmUPz81Y27 2SIVhjbYPewJ6tsNo5wLtbjZB2FakUo= X-Proofpoint-GUID: 25qADrRBje_zAHLzo4qVgklnteF8b53B X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-23_08,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 malwarescore=0 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609240006 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=stefanb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1790213209784158500 Content-Type: text/plain; charset="utf-8" To avoid truncating the uint32_t return value from tpm_cmd_get_size() declare len as uint32_t rather than uint16_t. Signed-off-by: Stefan Berger Reviewed-by: Marc-Andr=C3=A9 Lureau --- hw/tpm/tpm_tis_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/tpm/tpm_tis_common.c b/hw/tpm/tpm_tis_common.c index 4ba228116b..8fa1bee771 100644 --- a/hw/tpm/tpm_tis_common.c +++ b/hw/tpm/tpm_tis_common.c @@ -481,7 +481,7 @@ static void tpm_tis_mmio_write(void *opaque, hwaddr add= r, uint8_t locty =3D tpm_tis_locality_from_addr(addr); uint8_t active_locty, l; int c, set_new_locty =3D 1; - uint16_t len; + uint32_t len; uint32_t mask =3D (size =3D=3D 1) ? 0xff : ((size =3D=3D 2) ? 0xffff := ~0); =20 trace_tpm_tis_mmio_write(size, addr, val); --=20 2.55.0 From nobody Sat Sep 26 19:11:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1790213213; cv=none; d=zohomail.com; s=zohoarc; b=lMMB7HlcPdo1XX854ErKuEpvqro8XEuH/4lnSJKgET9ENq3gnGJYnXsfNaK9jLkGHsovTn6L4xyvokeQF+5pLQGxdlkzHk8jcP1Nt8GNBXo+brorkYAcxkr8ebeSwiLw99Z9/UhumLO6zeNCDpm9UORpXL0CMbwODEdq7a7WAow= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790213213; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=JZs5z3Or2QSDXmaDJOhFmtgUyHDJhTe2ikwgwSoYk2c=; b=Fv3MUr1fYXAVS1wy0TD2OHXqk3KHDX1WcE+X0mdybRCmwKPRkNZ4p4TFwaxDIL2O3AQzb/i+ODnclGF0nCGnF86D5gYwKUQzbXBl95QWzTczxz+p0yDW7lcTYAma+6slV19zxA9/gw9/vWjvonoPD6i1gML33Zpujy06gmw1e7o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1790213213890103.82819933837038; Wed, 23 Sep 2026 18:26:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9YDe-000195-7g; Wed, 23 Sep 2026 21:25:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDY-000160-Rj for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:44 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDW-0007Lk-PX for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:44 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNa0vp3589567; Thu, 24 Sep 2026 01:25:42 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskgqnr85-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:41 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNHjYI1117718; Thu, 24 Sep 2026 01:25:40 GMT Received: from smtprelay03.dal12v.mail.ibm.com ([172.16.1.5]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbe1ujuq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:40 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay03.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68O1PeJ320316700 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 01:25:40 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E8F7B58053; Thu, 24 Sep 2026 01:25:39 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6902C58065; Thu, 24 Sep 2026 01:25:39 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 01:25:39 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=JZs5z3Or2QSDXmaDJ OhFmtgUyHDJhTe2ikwgwSoYk2c=; b=Kdm/mCoWWe3N7X+vjghvAoHKDx10C3XmP RGHZZrxAnmUlQvEmjaiFkgSmF8+9FK8+D1pyt1SI7CLoQ16gNfF5K3nw/TJosOHE tFAn4BBJPXCkgIeEYJT2OJfKcH426Qi+R3FjQNaAjSa5W3EwREe/dtfn/L63O78T HEl2lgUyzQDZnqe2unw40vYv2KIgnrCw/nsn9HEjnnVKJcsxiUKQ3X+YM6WJf6ac oM5q/Jt8H1Ma+PcYO0qlTRZSTY5S4dmKydkQG1ePTNuN7D9CgVmTAr8ji0gmG1Ir /no+DkT6HQ3TRVkJmgV58nHVwAJkQh96ANOnGvF3YBAD9m4nwQg/g== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH 06/10] hw/tpm: crb: Do not clear internal buffers when backend is busy Date: Wed, 23 Sep 2026 21:25:23 -0400 Message-ID: <20260924012527.858527-7-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924012527.858527-1-stefanb@linux.ibm.com> References: <20260924012527.858527-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Authority-Analysis: v=2.4 cv=G+OJgNk5 c=1 sm=1 tr=0 ts=6ab47c15 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=t2cqkf0TM92pdDbkWP8A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX83s64E9Uuffw 86QCGqIQnH4HUid9Sr3GlDPpPG/r/lHcZDTWYHBaaWj+TM/ODMB3MzGGvfn8O3LfoFZUib7pBEe 4YvIVPhzku6QfY7PHhKVg8axaEoGLvRLB/IuJtbspiWJXFXNaLtKUbzjR8t9bN5Z/IuV5rToll6 fIVFcYDK3CzXiy/fSBrhPvmbM6miAx9v2S3xQ7yQK14obIG/CYX5EvRk1dcZidJEdrPiR3cb6Oo P1TagwYPzehai705xfwZuETfRVqrQQ99Iuq6TfiRMQTq25naTnrEwWO0FEjf0X+8QyZWfM5y1Hb VUdjBUfzvdM9ETOeWUkflDtfNgAo7RaURoRcY9rgf/ZbfKjZ7YvDQuTgnswmwx8mkvQijiAgmEJ dCAVXuk+U2kL8z4ptYBg8So0viArYiDTnfmzQJ5AKeC6vMQmlDbkAyU/J7qN/BBq7zlL85Zyfme wWpp+HL4gybk3TVom/Q== X-Proofpoint-ORIG-GUID: z4af6tnU3UuRWbMcCI-eQihdPtQrfrnT X-Proofpoint-GUID: pmwpNKiirUSq216Q4E5NmKqAxY4snsCU X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfXyPkczi8Po860 JAfagvP57vL+g/di8yCm8JBRuM32nB/dDqR42fHshmPt/CT+9Ad91K+DZqHZyIVRUvj4W7w60qX dU39nb3LYYBmD41SpITEyXAZPT/PQeY= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-23_08,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609240006 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=stefanb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1790213215764158500 Content-Type: text/plain; charset="utf-8" While the backend (thread) is accessing the request and response buffers, do not clear those buffers upon a command cancellation. Still clear them in all other cases, though. Fixes: 29315d22b259 ("hw/tpm: Add internal buffer state for chunking") Signed-off-by: Stefan Berger Reviewed-by: Marc-Andr=C3=A9 Lureau --- hw/tpm/tpm_crb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c index 54fa2042b5..e5e33a3a2f 100644 --- a/hw/tpm/tpm_crb.c +++ b/hw/tpm/tpm_crb.c @@ -218,8 +218,9 @@ static void tpm_crb_mmio_write(void *opaque, hwaddr add= r, if (val =3D=3D CRB_CANCEL_INVOKE) { if (s->regs[R_CRB_CTRL_START] & CRB_START_INVOKE) { tpm_backend_cancel_cmd(s->tpmbe); + } else { + tpm_crb_clear_internal_buffers(s); } - tpm_crb_clear_internal_buffers(s); } break; case A_CRB_CTRL_START: --=20 2.55.0 From nobody Sat Sep 26 19:11:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1790213220; cv=none; d=zohomail.com; s=zohoarc; b=mAHGGNA9CDRQTPOLLq2D0skqK3ANubUnE79dwA+gqSy7I8YOwzhQjHE/+cv7i1E9gX2nOXRgIrgJ/1v8rfQLzZ0xeYjwGl0074HhwXeGgcna2BLQwGbMU8SDXFft/rRw9z/MjZ6AyLY99NICSNUtw9C1+6KLnHQEm24woqQr7Ms= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790213220; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Yhl563lbS+17JVt2WjPafv4pfyV0UQGzs6/hin+8Pc8=; b=Ttqk5aFx6m1HbWxszczbVi/tcULCfJnYaayJc4LZ+X7XFRypZkBSTBZasPTi5DUNpWZt0UCjutRmoQF7neVqs/vhGOgbIbxXzCgYwzVsQIoHvqSP3cIKcLvnfOhuKNWidqpvWoh+DppkJXYu0iERMxBE41LXQw/iTvbUNzjb4fQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1790213220173979.0212238641413; Wed, 23 Sep 2026 18:27:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9YDg-00019l-6f; Wed, 23 Sep 2026 21:25:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDZ-00016Y-CO for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:45 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDX-0007Ly-OH for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:45 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNZl9J3589538; Thu, 24 Sep 2026 01:25:42 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskgqnr89-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:41 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNHTGH1079965; Thu, 24 Sep 2026 01:25:41 GMT Received: from smtprelay03.dal12v.mail.ibm.com ([172.16.1.5]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbt2uf3g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:41 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay03.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68O1Peq415598096 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 01:25:41 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8F1B358053; Thu, 24 Sep 2026 01:25:40 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1926A58043; Thu, 24 Sep 2026 01:25:40 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 01:25:39 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=Yhl563lbS+17JVt2W jPafv4pfyV0UQGzs6/hin+8Pc8=; b=nU/OxFoQbNHaDqLfE7NfnkXvYD9fZpJLy gKJIrEuSuSp4PKNWCrUIO+RnecmkRv/Q5BO4UkW9X5hlk0rqGpyDRxk49j4yMh1b ITd86DMUbiXWgnGDAb8ktlGbHKiwsRfF16Kie/EuLPAtPsQ6XNw7vHGt1ThhalAD xlTnzvqnROLyph15FKK8lALRH7BQBhtjSEUp4otGIdVzlXknIdftfFFi4FOZBXbS VYP6NZQijWO4AFv715KjEn0bqGCbSzezIAivEwpbV7XhTxoxsD/POncMOfxSnCvI M9TMdjKOiAOXcgLzFcSKntWShislocGqv3sGEejhyLc9jHDIUpCXQ== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH 07/10] hw/tpm: crb: Avoid potential integer underflow Date: Wed, 23 Sep 2026 21:25:24 -0400 Message-ID: <20260924012527.858527-8-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924012527.858527-1-stefanb@linux.ibm.com> References: <20260924012527.858527-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Authority-Analysis: v=2.4 cv=G+OJgNk5 c=1 sm=1 tr=0 ts=6ab47c16 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=c1_1-GllvHXUlFLDVV0A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfXzNiaZLCJKr8A 3E0PqV76VjOKkk3b05K1a5Op5E8JwBKQJdEn3Z2dAyC3tChuwWcfVwSW1rX7q7YvrvN22/zoLDg tgAGFXxZfXdN44ps0bf6DKhbfArZ8uAB9PzxZi9qTZHDSLgdJp9jJebcXsalABqjkp/fsMkA9RD j8dvT808H+YlWNAIv4m8pMK2gSeIUyeO5wNWhaZ2huQga8fQy0vkjfZZy2htM13CzqgDKF3xN+4 iIGT+DYAoXRY7Vkf80yiXKXPcy75wGS+TE78bL1f1R2VgDJ2m4y/CIilksCxYAltGHhMjpfeWAH EKPNPxObMaGK1rL+XKEcLONPzCQmOgtYWH4UR2+1jizx6+1MQn+82lrU1OyrbNNfbibFgpVhkoD hY0v8xjIZcyai11EoOfo1TDDPvunT+MHQ0mnnq27APmskbMmUSUmqPr2+PlZGwR5gMS3wrCuwk1 xTXVm4SXK7qeMZUr5kA== X-Proofpoint-ORIG-GUID: GpIhF8nwIRsgzihqIr8MmbEJZTv7E0P5 X-Proofpoint-GUID: VEJB9996hBnxi_CJlm4qo8pslHh3nRzz X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX1Ir3KLf6lm5b +yzde9/r7PIeloID90Wu84uJpaGpW0z/Ub0T0Lw+nMBNS+diA0GoKdbKGhHr/sXGHh1bqWarh6g z/q5It5MzmFA18jP1q73i6BfFu3tJpY= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-23_08,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609240006 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=stefanb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1790213221552158500 Content-Type: text/plain; charset="utf-8" Avoid a potential integer underflow in tpm_crb_fill_command_response that could occur if s->response_offset > s->response_buffer->len and the function's call sites were to change. tpm_crb_fill_command_response currently has 3 callers that either test that 's->response_offset < s->response_buffer->len' is true or ensure that s->response_offset =3D 0 and s->response_buffer->len >=3D 0. Therefore, the integer underflow cannot currently occur. In the worst case the subtraction would lead to a '0'. Signed-off-by: Stefan Berger Reviewed-by: Marc-Andr=C3=A9 Lureau --- hw/tpm/tpm_crb.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c index e5e33a3a2f..9a9677db6b 100644 --- a/hw/tpm/tpm_crb.c +++ b/hw/tpm/tpm_crb.c @@ -180,10 +180,17 @@ static void tpm_crb_fill_command_response(CRBState *s) * to the linux guest in chunks by writing it back to MMIO region. */ void *mem =3D memory_region_get_ram_ptr(&s->cmdmem); - uint32_t remaining =3D s->response_buffer->len - s->response_offset; - uint32_t to_copy =3D MIN(CRB_CTRL_CMD_SIZE, remaining); + uint32_t remaining =3D 0; + uint32_t to_copy; =20 - memcpy(mem, s->response_buffer->data + s->response_offset, to_copy); + if (s->response_offset < s->response_buffer->len) { + remaining =3D s->response_buffer->len - s->response_offset; + } + to_copy =3D MIN(CRB_CTRL_CMD_SIZE, remaining); + + if (to_copy) { + memcpy(mem, s->response_buffer->data + s->response_offset, to_copy= ); + } =20 if (to_copy < CRB_CTRL_CMD_SIZE) { memset((guint8 *)mem + to_copy, 0, CRB_CTRL_CMD_SIZE - to_copy); --=20 2.55.0 From nobody Sat Sep 26 19:11:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1790213221; cv=none; d=zohomail.com; s=zohoarc; b=CL3kj450VNf3GxlyJ8+yPDjrI0Yh854g1lUE1DHZ5izPKfHjG6Zud5UkGKrOQn6cIrlLHYTAswtPueJjWUBdbXLCrCNMbJYJBWMbeynB7tQUZZtCf+bg3po92gaKdA8gFWrClPovX3uVKMaspr4plsOuocB7x3hdp7dA4c8ssP4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790213221; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NyeWePykbWVIHHKi7Jsj23rbmZitj2HlmJnAJ95S3xQ=; b=ar52SXrwaU3CG7dapQ8JOEHcjqOARV1CHssJUPKbQTfgCf9NNn25HMx14bcEgO34wc4RLQ84wSMrZmQFub4qcnl8V07e7gSfLP5LMg8z5NTooc1qXLfGnUvfFGdUdipOBjV2SeSIep6oX/+VtoZtIOv/TVzDodTS/uDXkdXtkLU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1790213221489825.7521909390349; Wed, 23 Sep 2026 18:27:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9YDf-00019M-FE; Wed, 23 Sep 2026 21:25:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDa-00017Q-EX for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:46 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDY-0007Mk-Uv for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:46 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNZOq6575604; Thu, 24 Sep 2026 01:25:43 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskg2pfj5-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:43 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNHeow1074669; Thu, 24 Sep 2026 01:25:42 GMT Received: from smtprelay04.dal12v.mail.ibm.com ([172.16.1.6]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbu8uf2u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:42 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay04.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68O1PfXT58196326 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 01:25:41 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 400B658053; Thu, 24 Sep 2026 01:25:41 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B39395805F; Thu, 24 Sep 2026 01:25:40 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 01:25:40 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=NyeWePykbWVIHHKi7 Jsj23rbmZitj2HlmJnAJ95S3xQ=; b=pOd24ky1x33Rdg/ANi8mHVPWUZwQ7RkDa 9P8tmWcRP9+WQxdPVK6bmgJil6/0O8ouILEvzDQNAVxCncBId6MVlmeD7wR4Eb+O Xi+vBXKH15r5WT1/HIcIWXT1rElSzR9Dhq+zrkXsGYDc2ROPs1eR7tvIk4We8Qq9 byDfRAnYirV2FYk8nLKG8MiYMShlGGVYQ9sm5WKSPh77lKXXi/NteovthkLEytIb GmNa3q82MAN6m/T26023fFWQCMb+ou4wgIUmG2TrVatnd9bFY0vRIe9Emuv5ek27 h42vKrlX+vITjCs8ZU8i7IGvWKSt1NfwmscNSo7V0vqGC0iSKxVVg== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH 08/10] hw/tpm: crb: Free ppi.buf in tpm_crb_unrealize Date: Wed, 23 Sep 2026 21:25:25 -0400 Message-ID: <20260924012527.858527-9-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924012527.858527-1-stefanb@linux.ibm.com> References: <20260924012527.858527-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: yOQU6-PnXZWKqie4l2Bo9q9zoEW6bp2t X-Authority-Analysis: v=2.4 cv=I43w19gg c=1 sm=1 tr=0 ts=6ab47c17 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=HrTg4vUDa9T9seCBAk8A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfXzRhadHpCWS1x vDG9PkrIOXY6Wc7Z0Se8H8VNDmmzT8EWoL4W0ZWJuMqiZ5wLfMQWsck8tiOAhNia6h5hX0S8UNy WwARhuKDFNPNIJcoOGA1RW9f1sAV/uCEdVcy7KttQ5wFIkRmrYXFbeVXIjUCQTWjCAB4tnC//rg YpSbDJnZ8S7bEv6fIkLNmD5zqYigE1TaTf1EHfPtoOazkT3E9n2M3gkZNkK4DXbbOr9OckmNRRa 7WYRJ37tEcpwb87ZDxDAd/GZ8a5+vte+UJGT3E10qGjJKhnJYcBhban9r90OHTXHuhfXTMm70aa J09gO4AVz4MQlfpKqaGsyNkqoe+Tw/k4qnxaNFJNFWhyjXSzvjuOu81O4QN8MYA2wrdNZASRhxS 1jI0alcDUifPNpFOISoZf4zmZF5lkZ+M/oh6v/nSqLXBhaJt4Yr5bN/D5HRNeSikS6JwOZIYV+c HeLd1nCVDZ4qkKn1+jg== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX8vCwp16yZI0r Xg0AU3U9xMyj/6ZxZTQe0/2uj3AcZf2AHvQw/osaWTl74aUNXSEnduH04Mo9Fx/TiD66dStKKMj TUTqZvfAXeBzBNev215KVPVYUP4OMrg= X-Proofpoint-GUID: If1tnEkl7L9F-q0xphCRQpTlBzCGRFi8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-23_08,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 adultscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609240006 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=stefanb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1790213223552158500 Content-Type: text/plain; charset="utf-8" Fix a memory leak by freeing ppi.buf in tpm_crb_unrealize. Signed-off-by: Stefan Berger --- hw/tpm/tpm_crb.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c index 9a9677db6b..4bd1919952 100644 --- a/hw/tpm/tpm_crb.c +++ b/hw/tpm/tpm_crb.c @@ -16,6 +16,7 @@ =20 #include "qemu/osdep.h" =20 +#include "qemu/memalign.h" #include "qemu/module.h" #include "qemu/error-report.h" #include "qapi/error.h" @@ -529,6 +530,8 @@ static void tpm_crb_unrealize(DeviceState *dev) if (s->migration_blocker) { migrate_del_blocker(&s->migration_blocker); } + + qemu_vfree(s->ppi.buf); } =20 static void tpm_crb_class_init(ObjectClass *klass, const void *data) --=20 2.55.0 From nobody Sat Sep 26 19:11:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1790213193; cv=none; d=zohomail.com; s=zohoarc; b=fSjS7ft9+zywor03Fp4eYIfdznfOTLipOgXAMg5EAi/o1zAqVSCqd/ONUPHJJIgoniDu7FgN5q9RDvNo2iSLJcQhAFvp4g/REqtaIvGeoCDZ7pw3C02JA0ufBsPzHPMJmUew51J1sp6wWX3MZ8jxIJT12Wz48/A7F1mhxWmxg+E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790213193; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=tLYEIblOzEmNHQuh3qn99Lmn7xhBPAFY8WYRwUa2fu4=; b=YCxR63tCQPxp2l7v8b1u4xrBVgg+WxbIORuVqz0zoyxbihAw4mk+GhN3VaoswFqAM96GKC+00HTemRYXd1OttLAVeWIxufrZlaj52F099v6Vglf26N/HPEPex+eLD7vM7QY0B8mBgN6CHJx9vU0dAW8hVH0+6LDx9IMo23bbD8A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1790213193280240.10321598675705; Wed, 23 Sep 2026 18:26:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9YDd-00018w-4g; Wed, 23 Sep 2026 21:25:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDa-00017D-05 for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:46 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDY-0007Mp-JG for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:45 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNZlTT414704; Thu, 24 Sep 2026 01:25:43 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gske1nvqd-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:43 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNHlD14029827; Thu, 24 Sep 2026 01:25:42 GMT Received: from smtprelay04.dal12v.mail.ibm.com ([172.16.1.6]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gu5bkkka7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:42 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay04.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68O1Pf0165732924 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 01:25:42 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D9CD658059; Thu, 24 Sep 2026 01:25:41 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 63D1D5805F; Thu, 24 Sep 2026 01:25:41 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 01:25:41 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=tLYEIblOzEmNHQuh3 qn99Lmn7xhBPAFY8WYRwUa2fu4=; b=O6O8Qoee53RvIz6wJPadTbwXFZoSSPwod yjFSjtRUY0/Hic6NfTzo1ctHatefe0UZUQihhjAf8oZhDmBJ9F8tcW7KoXITWjm7 AMIXso/alep+fGLDuvvfgv0WKd6th9uS3VUivqtziB7MYVMQ9Kgmq5NOibsOF+11 wzbHcjDQQBf2AEBPmt3IE/RwZGqVkNGKb61QBjaZmluhuGsZqssQ0Ic/+0S7kCYz DeiRlL1oxHFdnx31KQ7XfljB+vqvuYM0w/xtPtPbYEcFucuO4bQvDN1A1K0ruu6e SPnBapeDb9AlsNwomvL6TT4amas7Zfn1wRy4/krDWUV1jTMnK43MA== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH 09/10] hw/tpm: crb: Consider response_buffer->len of received response Date: Wed, 23 Sep 2026 21:25:26 -0400 Message-ID: <20260924012527.858527-10-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924012527.858527-1-stefanb@linux.ibm.com> References: <20260924012527.858527-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: RN2Pe6-yrt5HGEKwRAoCjHO37SlfzhKO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX69ce0Dq+sED8 E8y98VhtEbZREh62Cm/T4awC9a0wxTFHoW9MKBrC+tPV3sarMxhs4/gtsd5Xsu0utjcEo+6hI9v GlOb2nTBs1QHodHcRjwZz83in5/TADRKQ52LB5ANN4/TTvU9gzz/WV9gOUvARiCQjjqwYhQHgYB 0pQFXpBXRBrlHDxWSUQUa9f03+PB3ht73tbiGcetdrCd2SdlZqWM+EkFV6l8WVeosCDNENu1nR3 6Z6yEW+bk8L+L/7pygkv+9G1TAL3YixXT+pTX/ipgBVlRv7/7WTiMlEW9aDEGnrN4QDm62l2ggg zwXyEzs+y/VOEM2w1uSUtYrhwkRlzczCKl1CeCt8i/jR4iNEB7D/LjNOvifwv7uEHH6p1JIE9I1 IDtWDj+XW9SUkAmh+1/X8p1M96xIWzSswdzziXDsHpj2kWzXR0LYZ9ERRev7pcg6NuYmHCOuQIv eFi2N9D83F+CaV6RKng== X-Authority-Analysis: v=2.4 cv=O/KsLx9W c=1 sm=1 tr=0 ts=6ab47c17 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=rD1lyLEvv5Bxigb_1PMA:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfXxbc4AI4P+DAj kCjDsGu+SaoTBfmlcpt/9VGYUur0tLWF1wE3Ne86OKwNJLwXOjBUiigs550evrI2NKxDoTXUPag /3cpSNlkBVC61C7dAMAFeSYez9MiALs= X-Proofpoint-GUID: xnIrTVGTHE_4jppvxA3CX992bpWzh9NB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-23_08,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 phishscore=0 impostorscore=0 suspectscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609240006 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=stefanb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1790213195842158500 Content-Type: text/plain; charset="utf-8" When the CRB receives a TPM reponse from the backend, then reject responses that are shorter than the TPM_HEADER_SIZE. When determining the size of the reponse, also consider the length of the response_buffer as being possibly shorter than the negotiated backend buffer size or the size indicated in the response itself. Fixes: 2a660ad67d15 ("hw/tpm: Implement TPM CRB chunking logic") Signed-off-by: Stefan Berger Reviewed-by: Marc-Andr=C3=A9 Lureau --- hw/tpm/tpm_crb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c index 4bd1919952..6ae2261b43 100644 --- a/hw/tpm/tpm_crb.c +++ b/hw/tpm/tpm_crb.c @@ -325,13 +325,15 @@ static void tpm_crb_request_completed(TPMIf *ti, int = ret) CRBState *s =3D CRB(ti); =20 ARRAY_FIELD_DP32(s->regs, CRB_CTRL_START, Start, 0); - if (ret !=3D 0) { + if (ret !=3D 0 || s->response_buffer->len < TPM_HEADER_SIZE) { ARRAY_FIELD_DP32(s->regs, CRB_CTRL_STS, tpmSts, 1); /* fatal error */ tpm_crb_clear_internal_buffers(s); } else { uint32_t actual_resp_size =3D tpm_cmd_get_size(s->response_buffer-= >data); uint32_t total_resp_size =3D MIN(actual_resp_size, s->be_buffer_si= ze); + + total_resp_size =3D MIN(total_resp_size, s->response_buffer->len); g_byte_array_set_size(s->response_buffer, total_resp_size); s->response_offset =3D 0; } --=20 2.55.0 From nobody Sat Sep 26 19:11:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1790213228; cv=none; d=zohomail.com; s=zohoarc; b=fdQSj9/103WWWKsbj4gxKqHTw/nlGY8UQY3BkH14iebE6ferL1zmCi7IUNp94O1tp/yM2/Bvznv89QKgMW5nHY9BAGFif7VsSTtB5LWhNxBCMWA5CpCMuXQbseMzf+rOFVjlEnLSeINzGGkrqc/Swigv35XESR2pbyCSGqkwicg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790213228; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UD7fHBIniPLC3c3XSLId6SHaVld33K9sYnNuDO2jcAE=; b=WQRDQnqW6R2HqZ3tD56lX4wTqCCV6AVJB9NubyasfNUH9Tl3VCmymyQyPL4FQITiRiCEuh0/5YQYiotCH3N4oFX8qIvqsbLDwq/iiNwPLGhviZCwFmeZrUKOEZKSrNBr4efigTJhawdiNnxSGOmcUBBtgMB93y3DIMTXZ61vkTE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1790213228943318.0525220564924; Wed, 23 Sep 2026 18:27:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9YDg-00019w-L8; Wed, 23 Sep 2026 21:25:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDb-00017m-EO for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:47 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x9YDZ-0007N4-81 for qemu-devel@nongnu.org; Wed, 23 Sep 2026 21:25:47 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNZpub3589544; Thu, 24 Sep 2026 01:25:44 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskgqnr8k-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:43 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68NNHTFn1132852; Thu, 24 Sep 2026 01:25:43 GMT Received: from smtprelay05.dal12v.mail.ibm.com ([172.16.1.7]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gvb8jukn0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 01:25:43 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay05.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68O1Pg3u30802642 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 01:25:42 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8196B58053; Thu, 24 Sep 2026 01:25:42 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0A9A558043; Thu, 24 Sep 2026 01:25:42 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 01:25:41 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=UD7fHBIniPLC3c3XS LId6SHaVld33K9sYnNuDO2jcAE=; b=omq0XbGkaOy7PMEuNp0h1FPJ+j05zBuvb sQ75wAYntInOnGoZzZmKlB1rNzIEXhmEVAvTbbn0pZUFa1PYCs8nC8E2SGOE8tA0 WF6oTmO2cFCeZgcCOePBob2lrVM2CMy31AUntgjfjhefV72S50xRjtwkHoQN5ntz 5eueKjtZ6GMyhYQQX5cB9Ga9fAqDQTQH1QpcO0PAD2ZGiL2NX/m36wEriAOuIkJP NjHPgadbEAlfJ+BogvDbfKPGKOBnpq1vHbZwd0F5e2oVBUiYHaWoKkAaKxXsI7Y/ 8F5/HrOnLHTGXdxnsqjKLJJevw6d4yaqL7bXF/pF1/L18pJv8uIhQ== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH 10/10] tests: Add tests with commands with bad length Date: Wed, 23 Sep 2026 21:25:27 -0400 Message-ID: <20260924012527.858527-11-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924012527.858527-1-stefanb@linux.ibm.com> References: <20260924012527.858527-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Authority-Analysis: v=2.4 cv=G+OJgNk5 c=1 sm=1 tr=0 ts=6ab47c18 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=rfWPa_Qpybt_VECXH-MA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfX1AuubGCOJ1oX Ju8kqRD181G4U/Tstv0MNCNMIEJF8ul2sVkn4vGlayoy4q9O0NBoUDrzh5YyrXw2Vm15POmJYn+ 9qMr2kNfqr3XmPluFPaddGdaqM9Lvjw2X3WLSe8hnOFjMW5rYq0Fgilzbec4/V/g6wmjfBzdBJL 8qcJrXJ3JJxaRVicixvjuMSrVqY858xIKDQySMRrYr/IAmD3AJW7bNRy71ACBGEl9nwVjY5vSfK JJqEBf+mUpBd1cGnkBOo/lFw4lXjyEukMe1Wb8PbQEa2UeU61YyYDKQ3VTANLKoUaxqi4dt2V8E p9x5Inz0UUSgBjx1ufA/kehhMLBo3ZLIdoTN3YhdEVwtZVnmYkSyXvTSYQO6W5Qn8ryg/wcCz2b kC77sNOkYDmexm4CDs96H5chShvM6ijYnVHnsKRREQrjOQbdPEk+j4WKuIJ/0ZG4kVIcb4s62N+ TCjtunP5rfg4igud4yg== X-Proofpoint-ORIG-GUID: 6R7WxmrY7MYZ5kkzbDWVp_b5O2snUgl6 X-Proofpoint-GUID: xUE6zEnTSFCMeDNdWkUgfJPAfbwRL7SH X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDAwNiBTYWx0ZWRfXy6QZyupbx6tC HqI54YUDn01bYFQafo5Q/NTGVo2g13ZFla9rMJPqhB4ZLM8XaoMyI3Kyz6SrVshOBVrX8yH7EYx re0ao0RNdHXOH2URhrpGGuBAU7M229c= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-23_08,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609240006 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=stefanb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1790213229879158500 Content-Type: text/plain; charset="utf-8" Add two test cases with commands with bad length: - Send a command that indicates a very large size (0x10000 bytes) to the TPM. This will only work with the CRB interface since the TIS wants to receive all the bytes indicated by the command header. - Send a command that indicates that its size is only 9 bytes, which is too short to be valid since the command header alone is 10 bytes. This test only works with the TIS. The CRB silently rejects commands that are shorter than the command header. Signed-off-by: Stefan Berger Reviewed-by: Marc-Andr=C3=A9 Lureau --- tests/qtest/tpm-crb-swtpm-test.c | 10 +++++ tests/qtest/tpm-tests.c | 56 +++++++++++++++++++++++++ tests/qtest/tpm-tests.h | 8 ++++ tests/qtest/tpm-tis-device-swtpm-test.c | 10 +++++ tests/qtest/tpm-tis-swtpm-test.c | 10 +++++ tests/qtest/tpm-util.c | 55 ++++++++++++++++++++++++ tests/qtest/tpm-util.h | 3 ++ 7 files changed, 152 insertions(+) diff --git a/tests/qtest/tpm-crb-swtpm-test.c b/tests/qtest/tpm-crb-swtpm-t= est.c index 050c7b0c1f..0e83a5325f 100644 --- a/tests/qtest/tpm-crb-swtpm-test.c +++ b/tests/qtest/tpm-crb-swtpm-test.c @@ -33,6 +33,14 @@ static void tpm_crb_swtpm_test(const void *data) "tpm-crb", NULL); } =20 +static void tpm_crb_short_write_swtpm_test(const void *data) +{ + const TestState *ts =3D data; + + tpm_test_short_write_swtpm_test(ts->src_tpm_path, tpm_util_crb_transfe= r, + "tpm-crb", NULL); +} + static void tpm_crb_chunk_swtpm_test(const void *data) { const TestState *ts =3D data; @@ -62,6 +70,8 @@ int main(int argc, char **argv) g_test_init(&argc, &argv, NULL); =20 qtest_add_data_func("/tpm/crb-swtpm/test", &ts, tpm_crb_swtpm_test); + qtest_add_data_func("/tpm/crb-short-write-swtpm/test", &ts, + tpm_crb_short_write_swtpm_test); qtest_add_data_func("/tpm/crb-chunk-swtpm/test", &ts, tpm_crb_chunk_swtpm_test); qtest_add_data_func("/tpm/crb-swtpm-migration/test", &ts, diff --git a/tests/qtest/tpm-tests.c b/tests/qtest/tpm-tests.c index 1b4f932b0c..74b22c43aa 100644 --- a/tests/qtest/tpm-tests.c +++ b/tests/qtest/tpm-tests.c @@ -79,6 +79,62 @@ void tpm_test_swtpm_test(const char *src_tpm_path, tx_fu= nc *tx, qapi_free_SocketAddress(addr); } =20 +/* Setup the TPM and send a command by calling a passed function */ +static void +tpm_test_simple_cmd_swtpm_test(const char *src_tpm_path, tx_func *tx, + const char *ifmodel, + const char *machine_options, + void (*test_func)(QTestState *, tx_func)) +{ + char *args =3D NULL; + QTestState *s; + SocketAddress *addr =3D NULL; + gboolean succ; + GPid swtpm_pid; + GError *error =3D NULL; + + if (tpm_test_swtpm_skip()) { + return; + } + + succ =3D tpm_util_swtpm_start(src_tpm_path, &swtpm_pid, &addr, &error); + g_assert_true(succ); + + args =3D g_strdup_printf( + "%s " + "-chardev socket,id=3Dchr,path=3D%s " + "-tpmdev emulator,id=3Dtpm0,chardev=3Dchr " + "-device %s,tpmdev=3Dtpm0", + machine_options ? : "", addr->u.q_unix.path, ifmodel); + + s =3D qtest_start(args); + g_free(args); + + test_func(s, tx); + + qtest_end(); + tpm_util_swtpm_kill(swtpm_pid); + + g_unlink(addr->u.q_unix.path); + qapi_free_SocketAddress(addr); +} + +void tpm_test_short_write_swtpm_test(const char *src_tpm_path, tx_func *tx, + const char *ifmodel, + const char *machine_options) +{ + tpm_test_simple_cmd_swtpm_test(src_tpm_path, tx, ifmodel, machine_opti= ons, + tpm_util_short_write); +} + +void tpm_test_too_short_cmd_swtpm_test(const char *src_tpm_path, tx_func *= tx, + const char *ifmodel, + const char *machine_options) +{ + tpm_test_simple_cmd_swtpm_test(src_tpm_path, tx, ifmodel, machine_opti= ons, + tpm_util_too_short_cmd); +} + void tpm_test_swtpm_migration_test(const char *src_tpm_path, const char *dst_tpm_path, const char *uri, tx_func *tx, diff --git a/tests/qtest/tpm-tests.h b/tests/qtest/tpm-tests.h index 07ba60d26e..7684abf8f4 100644 --- a/tests/qtest/tpm-tests.h +++ b/tests/qtest/tpm-tests.h @@ -18,6 +18,14 @@ void tpm_test_swtpm_test(const char *src_tpm_path, tx_func *tx, const char *ifmodel, const char *machine_options); =20 +void tpm_test_short_write_swtpm_test(const char *src_tpm_path, tx_func *tx, + const char *ifmodel, + const char *machine_options); + +void tpm_test_too_short_cmd_swtpm_test(const char *src_tpm_path, tx_func *= tx, + const char *ifmodel, + const char *machine_options); + void tpm_test_swtpm_migration_test(const char *src_tpm_path, const char *dst_tpm_path, const char *uri, tx_func *tx, diff --git a/tests/qtest/tpm-tis-device-swtpm-test.c b/tests/qtest/tpm-tis-= device-swtpm-test.c index 517a077005..48a7389306 100644 --- a/tests/qtest/tpm-tis-device-swtpm-test.c +++ b/tests/qtest/tpm-tis-device-swtpm-test.c @@ -38,6 +38,14 @@ static void tpm_tis_swtpm_test(const void *data) "tpm-tis-device", MACHINE_OPTIONS); } =20 +static void tpm_tis_too_short_cmd_swtpm_test(const void *data) +{ + const TestState *ts =3D data; + + tpm_test_too_short_cmd_swtpm_test(ts->src_tpm_path, tpm_tis_transfer, + "tpm-tis-device", MACHINE_OPTIONS); +} + static void tpm_tis_swtpm_migration_test(const void *data) { const TestState *ts =3D data; @@ -62,6 +70,8 @@ int main(int argc, char **argv) g_test_init(&argc, &argv, NULL); =20 qtest_add_data_func("/tpm/tis-swtpm/test", &ts, tpm_tis_swtpm_test); + qtest_add_data_func("/tpm/tis-too-short-cmd-swtpm/test", &ts, + tpm_tis_too_short_cmd_swtpm_test); qtest_add_data_func("/tpm/tis-swtpm-migration/test", &ts, tpm_tis_swtpm_migration_test); ret =3D g_test_run(); diff --git a/tests/qtest/tpm-tis-swtpm-test.c b/tests/qtest/tpm-tis-swtpm-t= est.c index 105e42e21d..14b4cbce21 100644 --- a/tests/qtest/tpm-tis-swtpm-test.c +++ b/tests/qtest/tpm-tis-swtpm-test.c @@ -36,6 +36,14 @@ static void tpm_tis_swtpm_test(const void *data) "tpm-tis", NULL); } =20 +static void tpm_tis_too_short_cmd_swtpm_test(const void *data) +{ + const TestState *ts =3D data; + + tpm_test_too_short_cmd_swtpm_test(ts->src_tpm_path, tpm_tis_transfer, + "tpm-tis", NULL); +} + static void tpm_tis_swtpm_migration_test(const void *data) { const TestState *ts =3D data; @@ -57,6 +65,8 @@ int main(int argc, char **argv) g_test_init(&argc, &argv, NULL); =20 qtest_add_data_func("/tpm/tis-swtpm/test", &ts, tpm_tis_swtpm_test); + qtest_add_data_func("/tpm/tis-too-short-cmd-swtpm/test", &ts, + tpm_tis_too_short_cmd_swtpm_test); qtest_add_data_func("/tpm/tis-swtpm-migration/test", &ts, tpm_tis_swtpm_migration_test); ret =3D g_test_run(); diff --git a/tests/qtest/tpm-util.c b/tests/qtest/tpm-util.c index 151002ea24..d2042ed5df 100644 --- a/tests/qtest/tpm-util.c +++ b/tests/qtest/tpm-util.c @@ -194,6 +194,61 @@ void tpm_util_pcrread(QTestState *s, tx_func *tx, &exp_resp[14], exp_resp_size - 14); } =20 +/* + * Write a TPM command with too large length indicator + * The CRB will send the command to the TPM. + * The TIS will never send the command since it wants to receive the numbe= r of + * bytes indicate in the command. + */ +void tpm_util_short_write(QTestState *s, tx_func *tx) +{ + unsigned char buffer[1024] =3D { 0 }; + static const unsigned char tpm_bad_command[] =3D { + 0x80, 0x01, + 0x00, 0x01, 0x00, 0x00, /* length =3D 0x10000 */ + 0x00, 0x00, 0x01, 0x7e, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x03, 0x00, 0x04, 0x00 + }; + + tx(s, tpm_bad_command, sizeof(tpm_bad_command), buffer, sizeof(buffer)= ); + + static const unsigned char tpm_error_resp[] =3D { + 0x80, 0x01, + 0x00, 0x00, 0x00, 0x0a, + 0x00, 0x00, 0x01, 0x42, /* TPM_RC_COMMAND_SIZE */ + }; + + g_assert_cmpmem(buffer, sizeof(tpm_error_resp), + tpm_error_resp, sizeof(tpm_error_resp)); +} + +/* + * Write a TPM command that is shorter than the header. + * The CRB will not send this command. + * The TIS will send the command to the backend (needs to be at least + * 6 bytes). + */ +void tpm_util_too_short_cmd(QTestState *s, tx_func *tx) +{ + unsigned char buffer[1024] =3D { 0 }; + static const unsigned char tpm_bad_command[] =3D { + 0x80, 0x01, + 0x00, 0x00, 0x00, 0x09, /* 9 bytes command is too short */ + 0x00, 0x00, 0x01, + }; + + tx(s, tpm_bad_command, sizeof(tpm_bad_command), buffer, sizeof(buffer)= ); + + static const unsigned char tpm_error_resp[] =3D { + 0x80, 0x01, + 0x00, 0x00, 0x00, 0x0a, + 0x00, 0x00, 0x01, 0x01, /* TPM_RC_FAILURE from tpm_emulator.c */ + }; + + g_assert_cmpmem(buffer, sizeof(tpm_error_resp), + tpm_error_resp, sizeof(tpm_error_resp)); +} + bool tpm_util_swtpm_has_tpm2(void) { bool has_tpm2 =3D false; diff --git a/tests/qtest/tpm-util.h b/tests/qtest/tpm-util.h index 681544e7d8..70c2fc09c6 100644 --- a/tests/qtest/tpm-util.h +++ b/tests/qtest/tpm-util.h @@ -38,6 +38,9 @@ void tpm_util_pcrextend(QTestState *s, tx_func *tx); void tpm_util_pcrread(QTestState *s, tx_func *tx, const unsigned char *exp_resp, size_t exp_resp_size); =20 +void tpm_util_short_write(QTestState *s, tx_func *tx); +void tpm_util_too_short_cmd(QTestState *s, tx_func *tx); + bool tpm_util_swtpm_has_tpm2(void); =20 gboolean tpm_util_swtpm_start(const char *path, GPid *pid, --=20 2.55.0