From nobody Sat Sep 26 19:11:54 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=1790260860; cv=none; d=zohomail.com; s=zohoarc; b=mhlpcE4VOrjub6iEe6CC20iHHWTT2GWpiTCKKsPJL+aqJtvq7LVAyJqb/2Dymohj4dH0LhLTpbrGvluBckWJWCCaJ6Axh0HLYDORS1LuiHG9tAUxfzey1e8nJX6H1Q2ipzWMTBuhg4UlBW8qTQH8l+5RurtkEiSES3rlTkZkuJU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790260860; 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=REmdsiGC4OC2z6yhQyCLNOFDoN9r5JK/S7S8IO+uUqo=; b=dvZJeqvEdjkj2eEFzexEckzw0jQmfMJNhsDn1ovdeqofqjfL/Z9zup0Gg0tOBI6e1+J/A4sXZIPG57LW0F0MyOxeVAQjrzMhYerXW3+hZ5Bjk+1HVYm2ifGnUCVG/CiWpZD0MoBZlbsRQtXg/bBFe46pvFRe7X/2z3UF5vOhn48= 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 1790260860693823.8843720978685; Thu, 24 Sep 2026 07:41:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9kcz-0003Tz-RB; Thu, 24 Sep 2026 10:40: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 1x9kco-0003QM-8W for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:40 -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 1x9kcm-0004Xh-3t for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:37 -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 68OC6eL02028841; Thu, 24 Sep 2026 14:40:34 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 4gske1s2vk-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:33 +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 68OENelL2231973; Thu, 24 Sep 2026 14:40:33 GMT Received: from smtprelay03.dal12v.mail.ibm.com ([172.16.1.5]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbe1x96u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:33 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay03.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68OEeWru27329238 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 14:40:32 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E85AD5805B; Thu, 24 Sep 2026 14:40:31 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 720B358058; Thu, 24 Sep 2026 14:40:31 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 14:40:31 +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=REmdsiGC4OC2z6yhQ yCLNOFDoN9r5JK/S7S8IO+uUqo=; b=F75TY7l0KlRw2vb5HUFBAR0Evg0+Pob9u AZzsB9+0iRDMTMAsovCvytdNCZBej+RIYs3TowUIY7FTsgcp4iZ/BbJ7quSlrEPu LuuAf3lPpXR94L0AmpFneTyC2XbSD6pGsBXlWSDVWNffTAfI7HDaERZJJD0cfWsg 0yGoHuoSaaENXakFfonV0eo1eTYT/bv5A43NT+f2qzMLLfNAl1fce2nH8CaPGx2F Z8VFbvIq1FhdI3vfNRPv8HByVTpNoDD8QX2lUAmqmBGq5h92sswMcpG+Q8O6YvMz Peum8GiVQYpUWQ0hFpRe7IFfyEgMJiJBjHrACmQeUwR5OLIOwCItw== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH v2 01/10] tpm_util: Pass TPMVersion to function writing fatal error response Date: Thu, 24 Sep 2026 10:40:17 -0400 Message-ID: <20260924144026.953360-2-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924144026.953360-1-stefanb@linux.ibm.com> References: <20260924144026.953360-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: l1Euw_SLQxUJWoXia-hHT07OrnusQvGM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX/wzenvkmdmwN GFtbymH2GFI0gNZSv97MRbBm94VCmi4x2wnc+55KEfnBbLU8RFWcPOzSh+db8SPJJD68jEf3C3q 2SbsveRL7g998UuZvGoc5kTKIFM7ZdPuWcpfniKDkKOwW57AAyBeGfuH9iUjRAQZvPnuuFOQQvL qrXECl/9XAHoTalyyHNB4u+kkKf1NywKcJDkkLcjbcLK1E1pFTEQ3CgspkTYG9etgEBiEZgoYMT dBMUu1HJQLgqwhna6tbK0+If4E8R1wsZLWpcsO7rBJ41BC5HIbnh+JbjRtRag6laSui4J1kkBHh C+V1Qe0aj+C4TmW7mMV6kzlxF+TOdPq30xrhE6dhOLey+bX/8pEaodS7gmc7UZI2E5FFD9dj8TJ dqP86m1z2zzhqlfv04qdw74u+e0abDTwX64d3EmG/JHxMZj2WtgL/k3XOvYmjc1LiKvc0tiupVk trfqw5r9AiDvYTqDX/w== X-Authority-Analysis: v=2.4 cv=O/KsLx9W c=1 sm=1 tr=0 ts=6ab53661 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=ZdjYBk6P2T0J8aFbIr8A:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX2TdLFYahOqQ9 Rs6NL3DwGJi/i6Qu6bYdhxEyNBhmGmiw3jCQYCBf1MmqPXVgB1eQNI8TDkxV/B3pyfvVAJ1hEU9 AFmEL3z8l9F9tHUyEpV+9u462vZJ4xY= X-Proofpoint-GUID: beHiabimXcsxwXus7HqdY8EwNVcekXiw 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-24_03,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-2609240060 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: 1790260861001158500 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 --- backends/tpm/tpm_emulator.c | 3 ++- backends/tpm/tpm_passthrough.c | 2 +- backends/tpm/tpm_util.c | 17 ++++++++++++++--- include/system/tpm_util.h | 3 ++- 4 files changed, 19 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..7019f7fd3e 100644 --- a/backends/tpm/tpm_util.c +++ b/backends/tpm/tpm_util.c @@ -87,12 +87,23 @@ 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); + switch (tpm_version) { + case TPM_VERSION_1_2: + tpm_cmd_set_tag(out, TPM_TAG_RSP_COMMAND); + tpm_cmd_set_error(out, TPM_FAIL); + break; + case TPM_VERSION_2_0: + tpm_cmd_set_tag(out, TPM2_ST_NO_SESSIONS); + tpm_cmd_set_error(out, TPM_RC_FAILURE); + break; + default: + g_assert_not_reached(); + } 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:54 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=1790260869; cv=none; d=zohomail.com; s=zohoarc; b=BxkzZcbegzsC4XmekEElzxc2BxBxJTYlms3gWswHX/u5WYueKzmxdsQHH9bAihWYnRxLWAN1lzvXTbXHCCYp93wmHOFgZ1sFyar4I5swuDdp/rqAY1zG1HDBqV8OGk/e8dbkDczb+/UsRnbZouuQdCYobcMN2U0EW8q/AcucOes= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790260869; h=Content-Type: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=IAH3COOHbUwd/msYhDNKJmyyzPJ13MIZ3bHbPT6lAfY=; b=j3zZYgcyqErD3JaZFlE1v1KIGYPELuBuHGlEhiYhEr8DKZeAXPvjifw0fRjRK0hP2kmtvCY4Y/DUmJrd0eM/ph4NRD6VwgiTwHEhXWV4VR7cpdCv/rXyH30rqQcdygC13hL+yUDRTk5+foN17d2sjJTZZ/l6iAqtgkJtVm0ze4k= 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 1790260869461292.3692986811076; Thu, 24 Sep 2026 07:41:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9kd9-0003Yu-Qu; Thu, 24 Sep 2026 10:41:01 -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 1x9kco-0003Qc-VF for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:40 -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 1x9kcm-0004Xq-83 for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:38 -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 68OC6Qmf2183769; Thu, 24 Sep 2026 14:40:34 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 4gskgshp20-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:34 +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 68OENofa905541; Thu, 24 Sep 2026 14:40:33 GMT Received: from smtprelay03.dal12v.mail.ibm.com ([172.16.1.5]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gvu7eag3g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:33 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay03.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68OEeWoo29950500 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 14:40:33 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AA6C05805B; Thu, 24 Sep 2026 14:40:32 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 18C5258058; Thu, 24 Sep 2026 14:40:32 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 14:40:31 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=IAH3CO OHbUwd/msYhDNKJmyyzPJ13MIZ3bHbPT6lAfY=; b=PRSwn0eRpibMM5VCFobWEu Fknf+62F6WCnfKcHdtKPLv5nzWfKOz6iPoQSqk7dDySsl/G72WlKxPM5k1kb7+o/ Va4F0V+CGcpXGFNRRB2iApUF5xnbVmUQosxPxOtQKpydWAwLoCDZ6fiXi1+L6s9Y N3FwGs0OEiPsAdo7T2HkBMToyispxXWVRf4zHa/7zaAKUqfpRvfRE3fLh3ml0EQO gcXDuvOGo+MK7SC2EjIg421YmZn5IokfQ6Fzuzm4TXd9LKpXClQDuixbqn2zY706 KiGaMzAim/hfE4/YmJ1xcwL54Jq2UGrrPiuA074eU2UYzuu42Pa73U1Mrx9Oh/NA == From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 02/10] tpm_emulator: Reject TPM responses whose size is too small Date: Thu, 24 Sep 2026 10:40:18 -0400 Message-ID: <20260924144026.953360-3-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924144026.953360-1-stefanb@linux.ibm.com> References: <20260924144026.953360-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=6ab53662 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=luQVlvl-W8lCxKXVFxcA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: oHNPlYPnWiGznFAmhZQI5PBRs6e6Jlap X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX7/Al4N+9DsYS uNxJDADaT74h7YV+RmcMrj6mgVgrxYiZP8shCCuHG5YNIr+0b9cdym8t9OIWyKGh+x64XONFlyL 0RoCHxLR7oPDx5S3LbJitWd+MuXTzTcgXxBt0tYnBQBVk1Bnu32+ng1NeIQHHJUUnod8fohDKvs QmE9g4wnlccyu0pa2jYlF6aE8EXV+d6osPyyETEZ9Bf1MNY7H2BY5chYQ5aRYP8AWeoYCvoH/RX +dBvL+UZnDykv7/2/RVYkDKCiRdrcWNMVQIc8J6nQYIXTeov4N3P3QqmFttApp1JNEa1zyQdfK8 QIIUBzv2Qne70ErT6WszNq5cOxbAkq2a2MA/uomAbgNh/kByWk8z4p/XrsAXH/9J2fP40D9ZlVO rdS8q79LHtyQJTUeTEY40eiyD0/fwI/jcvjOQDuKm8hDiDShGVFShTDld9s1VNI2B6sWqGLm/C0 TbLpVLWdAjL5LJnPxtg== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX4/uSFJqgQ56H dhnmfChfTjxT91jwc8m66WlCNRUOnsOVUB2wBFu6m8js4YD9oCVPv1U4lcOkZan3fgBPvCgtibd eBBufPFn7Iyt2o9WCcKSMVZwhBfD1fQ= X-Proofpoint-GUID: Sb2_YY68dMrEdcvOssvNWkbO_7ZPCFOm 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-24_03,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-2609240060 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: 1790260870975158500 Reject a response from the TPM emulator whose size field indicates that the response is smaller than the size of the header. Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Stefan Berger --- 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:54 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=1790260948; cv=none; d=zohomail.com; s=zohoarc; b=cDB/kLEiaoLTJq97XGgeb/WjG344pptH15JcYQKCCP/ZfeYSMS0SWMSJlC6uC/b+4RfmNsNElIEvu2Dg6pVtAwbr5Ylm4lzIDxrlPu67h+wg0/gU2RZJt2/uwYB3AYkRWEKoArLpyjDG5X5YwgKwyjOvy7zOelx6kfboF/gEjb0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790260948; h=Content-Type: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=DxcENW3KcCsWxsl4uaYUZg4pvpzJWSU7O7BBPrbv1Ng=; b=EUXabq9dqM5Q/Rg+JTpyXbzhDTyEqlT5GYNNPzq6WYr9l/RqgUk+hJiUBmEu/9fHH9PWwTTfAZQ6lbKSqZwmR/n5TWjXBGg6rk5bvPZSR1yGiwXuLWqPGjc5nQqrUXSEiXRkY2bRX+cTa6i6AhhxF3IfT4BhWKAfRdMlhY/VvTk= 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 1790260948803489.54646846449566; Thu, 24 Sep 2026 07:42:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9kd8-0003Yi-CV; Thu, 24 Sep 2026 10:40:59 -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 1x9kcp-0003Qe-Oh for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:40 -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 1x9kcn-0004Xs-W8 for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:39 -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 68OC65HV2190525; Thu, 24 Sep 2026 14:40:35 GMT Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskg2sshq-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:34 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68OENs592244447; Thu, 24 Sep 2026 14:40:34 GMT Received: from smtprelay05.wdc07v.mail.ibm.com ([172.16.1.72]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gvb6qp9u9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:34 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay05.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68OEeX0X25231996 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 14:40:33 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6D7E358059; Thu, 24 Sep 2026 14:40:33 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CF1BF58058; Thu, 24 Sep 2026 14:40:32 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 14:40:32 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=DxcENW 3KcCsWxsl4uaYUZg4pvpzJWSU7O7BBPrbv1Ng=; b=GULzLUhKS2oxgRWggWTz6g kVfhGF05pHAnPun6uWqyWKp86JSxGGx5Es3e2Hi0UadsQ0a6NHwjiP5UkpGCyHIE bAJ9BIwR+UW6z5rw+sJUA61B+/ZAY5549yUtR/GLsppYm+L6zYaXlC6PynIfI3xP yNL/o09oVqt81YTFbfo1BmemBY9+c0934a8dL4grDr+730f7FJ7PQG8f5i+ACkpv Ujp8qC37g2pkKMUZMoMg19lp1Zgwq3gAdTD6tQqBXYC9IGk/gto0fMoT4u6n/J0B GhM0wxsw3PCu6c+BMvNPl7BtWwqDIfcWonmjyy52w/7O8J26uNQM3ep/pjOHSyDA == From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 03/10] tpm_emulator: Reject sending commands smaller than the request header Date: Thu, 24 Sep 2026 10:40:19 -0400 Message-ID: <20260924144026.953360-4-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924144026.953360-1-stefanb@linux.ibm.com> References: <20260924144026.953360-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: 1WND5G0vL0rEfZZMwUqIZRWU4CUgcZT8 X-Authority-Analysis: v=2.4 cv=I43w19gg c=1 sm=1 tr=0 ts=6ab53663 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=-V7DfVYgi2RuJlZc1c0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX1mQuiIQ2XYwd 9DFi/rIhUExYSF8xwY9La75pKLA948r2eMfIyiqNJ4Qhqe6dg0rxJoPgE8AO0Z+C68tVMMTT5ac pweegTIfUUrobwtD9Ln+zrhw4Ig5rNj3iIOln2RDJieT9S4A5LLXLv4qxsX225SfjQHNmunpX73 4XhU+CH7LDvWLjKXzKtbA5gnJf5ONga8mKHWcIFmP/zNnSmJb/X9ULicmWWSnXrAIGnuhQG4Xm8 ix968cTC7QZuvCnmIi1H7hsc+R/WjLGV1DYjMd9V8xP5kY2fqCTpUEcwo6B4B9uccDcgXFziJKq sAn0tiyGvgWZczv+RDuR6GkXmdIdW4IFgvWniX/AXWK3RSTemNJLuKMsq3BegT78HF6R/5jdBxv JN89cJb9vNZq3h+890Wu/ynmKvQBz9ol/EI6ATFFUrbUk/pSC37P2iUCRXhbkBXTqVkmVODNCJd T9mrnK5SzVNLx8QWd3Q== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX4iBg+vmpO+ll IcybYKj/SLSERCMhjId8KToYXrXuJaF4B4BJT+iUEiEgEEDfskhCSJ9LM1MBx3jjK8y+sJ2emFX k1v2sVentUSj+DMMEmC4uVU3t8wkBss= X-Proofpoint-GUID: -NF9kFCsbl8YqfAcFDyOGgEEMrS8bnvZ 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-24_03,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-2609240060 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: 1790260951299158500 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") Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Stefan Berger --- 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:54 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=1790260913; cv=none; d=zohomail.com; s=zohoarc; b=Q7n+EJA6OLf/PUFaHYYuj4WwDbpOUIpdd16a0tUxQ+MLa8+Tuz/43OtRHsjykvcJXL39D+8CvodyPzIu+jF3gEBmm6Kk5BdVR7VdErekhAW9jso8hR78xUT7sMnG/LR4IuaD45xZuuuBIDunyi870k+n5By/LaBN5YVPq6bnnpE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790260913; h=Content-Type: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=VDXyzNsErWqBFruawXP7XM2kGjXa4HH5YRBaOWJo1WM=; b=WLjFjm60ZIO8vdl4bBa2pn2/r89Gk2nuayEsIJ/qeLzvV3EkRNI9vAzVkliADtBccm9lgY9hlws8TrIPdMVukwxxCD8++IgIwOsKy1f2zq330DaptAIVAsNA2p32lpI3+vj5vBCNUH/jIqODxmugJK+GgeNdLM0rnJeZyL4iMlM= 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 179026091364246.05431288633622; Thu, 24 Sep 2026 07:41:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9kd6-0003WA-2A; Thu, 24 Sep 2026 10:40:56 -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 1x9kcq-0003SG-DI for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:41 -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 1x9kco-0004Xz-09 for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:39 -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 68OC62X32190425; Thu, 24 Sep 2026 14:40:35 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 4gskg2sshs-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:35 +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 68OENgd12188223; Thu, 24 Sep 2026 14:40:34 GMT Received: from smtprelay06.wdc07v.mail.ibm.com ([172.16.1.73]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbu8x5hm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:34 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay06.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68OEeYqI14746296 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 14:40:34 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3274F58058; Thu, 24 Sep 2026 14:40:34 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 946F75805C; Thu, 24 Sep 2026 14:40:33 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 14:40:33 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=VDXyzN sErWqBFruawXP7XM2kGjXa4HH5YRBaOWJo1WM=; b=d7w6Ct7Ky7ubQSZtuqorz8 VNrHqKMToA9+bQiDvkNI+piuvJz6caKRrBzMqsM8eszhYTYFFtZ+rkRb6tRekzqC 36LrqFQUkMPYWIUp+1cedc87mj56x1wv1uOSAmeOZ3I1B4sIPD2wplZkJLmxJRBR hmR/v09j2RWrioX+zCR81luLSJ40ev9zEkPXkoNKtfTbkq5Vfh4WPzQ+I7pnBPY2 T8gyTcqx6zVhQ8+DbazPFE5NA+kwAIb8jn0K9Y7NMg8wexXwuEccolzi2671BGk+ GrbFml0mXoxAgoQIhnJw0TvvqJpeyFLgV0MvvwWUFWo1tUIGISBSueWPqfL2uOOQ == From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 04/10] hw/tpm: tis: Only read from response buffer if rw_offset < len Date: Thu, 24 Sep 2026 10:40:20 -0400 Message-ID: <20260924144026.953360-5-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924144026.953360-1-stefanb@linux.ibm.com> References: <20260924144026.953360-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: cCb8QFDlKT8Oa-F1jQg5i92HHbE3_nza X-Authority-Analysis: v=2.4 cv=I43w19gg c=1 sm=1 tr=0 ts=6ab53663 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=vkKK9v0PSp4LbjciNHkA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfXxQwQoGYlKZL7 0vfbZHKW8CvZpzgvz//4ifhcEXj+f/tpDMJF6Rq7fBcIWYPYQFIrXB0tT5+MGNfxRFamTL0d6G1 n8sqG5By2jlU3kgesfqwbW2a1KTZCMt/TtDo+QERYSX0/4QGh0e5v9B9l77mr50hfFUz1n5DGVI ptxYdD1p5RaFA4P6jsf4d/3GD/V+Xh4lI2ydLcYHhqmkN4yXVtgRxcagF354+XrxGQiC6CTcJ2k Qra6xf3tgSNfIFfEgKt9Da9d3fjUMBART45txH1RdnAh6Khpt4auUES4mnIQTw1wCDJPpcpy/KP Zd+XVgn0eKqyWh2/sPsr6l/oRqLMukXGxrfl0DDxHWA+RRLbhHt4oY237h3wuOskOPplgAwjDio pMbtaqZ6Zctiy/We1iViw6px6CJPTrwqP1VZYTNmz0UCk6voG/J4H8DSjpj0j2bDMW2B0J3LhI2 YL91s8Y86MbtkuBBKLg== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfXw0+paNbZYefe nyrNOsbSnhn6pKPlyPnbreLXqR5YVxz3csjo7kDZIJ2gkkegLd85+ZCUHTotxYPoC3ELAPL6uAk WngBYAdWfY7qiCVe4G+F09GB8+NdDlI= X-Proofpoint-GUID: hvWysxbYPo0gvcWUe89FDUJkqnWvhUdm 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-24_03,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-2609240060 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: 1790260915222158501 Only read a byte from the response buffer, if the rw_offset < len. Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Stefan Berger --- 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:54 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=1790260908; cv=none; d=zohomail.com; s=zohoarc; b=c8WUjZjG5Y0E8DviDcK9wEEhnF70DEe0lRACM1zPmvfgUmyv7QOxOb4K1hWVN0g+tQhnWocJCRwSd9aayntMJEmgIdUWCZPu7MPK0aprwQZtKC9La1aHSE+QX46NinJ4IqahI/YnVxi8MvSEY8IMAIuZeUTvHwLRdpSmKOZgNRk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790260908; h=Content-Type: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=1Zu1y3yKbCvTd2/B224uu1gg8Wk2aY3rdA49zALZhvY=; b=jLSsTR83MIw7oqGOCZMSRSVmpWUYvx6mFq+XhrVuDsyqzSrP3NmUe4wB07cRPvTPLH4/SOYzPw2r8hlEiPSowiMS+bIvrWem5xQyJO2Hk11XYbmpS2nJ6DTC6CAAYMmjJZj80j5xxy4oWoGxF8mVXT/QHjc7ERpIyAvS5vj4owQ= 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 1790260908154965.5702882285796; Thu, 24 Sep 2026 07:41:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9kdI-0003fK-3a; Thu, 24 Sep 2026 10:41:08 -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 1x9kcq-0003SH-DI for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:41 -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 1x9kco-0004Y7-3a for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:40 -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 68OC6XHw2183891; Thu, 24 Sep 2026 14:40:36 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 4gskgshp25-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:36 +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 68OENhbq2188226; Thu, 24 Sep 2026 14:40:35 GMT Received: from smtprelay07.wdc07v.mail.ibm.com ([172.16.1.74]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbu8x5hq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:35 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay07.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68OEeZl522872658 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 14:40:35 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E973658059; Thu, 24 Sep 2026 14:40:34 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 57DD158058; Thu, 24 Sep 2026 14:40:34 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 14:40:34 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=1Zu1y3 yKbCvTd2/B224uu1gg8Wk2aY3rdA49zALZhvY=; b=JeS6VBfE4YhIVO80VRni1n hl8ZyL4h521aPSiB4RceVml0w8nVGyLmVu908aNl+j0sslNJYAnWGCRoOA3UHcKt WU3IATGaMfznrSTJxr0GlG9i09TVgFWzoS5NxMvcmUL7yCjktYHdkpfslCBV2muF eWmGToJHbF8usi30WNJwf6R/YKvqG4Prtt8gl5NINbRv65qW+lf+7JjcgKMXWY8Y fjEBWpLlzki3hWR00WiCbgO8/Fh5Fwy9Kc5WTNwwDb/jNoMCmjTOm/5j0fdc4ioW kVbjvig0bFV8APjlfCPzeXZE6cD1Clx1hIslERKkgoPIetSJxfuNuUyoPB/kmojw == From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 05/10] hw/tpm: tis: Use uint32_t for len to avoid truncating size of command Date: Thu, 24 Sep 2026 10:40:21 -0400 Message-ID: <20260924144026.953360-6-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924144026.953360-1-stefanb@linux.ibm.com> References: <20260924144026.953360-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=6ab53664 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=RY3EVia8NYhRY2h5:21 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=k5BCUbyaT9HKcZ68nHAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=zZCYzV9kfG8A:10 X-Proofpoint-ORIG-GUID: K-EAplxyRQ4XRt_8tR74i9M3tz8EzbrT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX5uiR1KHdiTOF zoDTh6CStPNyojHmPoL+/MK6PfsQNruX1jVwNGxlw32HKaJf4SLo0poGf0gvPgpOrKWwrEAImtC ratdXeRaz1WGhoi0GSgyXUod5hDPmCGk+VKc+zGkrClpgosZi6CZ8LNWC1G3X2Qllyk+SvJNYXg w9ezeA2/uPauWTJffA12Bp+P9BO2fDlQdxKtNyicNR8RmeOTORM9i62FPOFAUQ5LHRATM4tJrR6 R+dOVRxmUV4T+JoMtozwu2MHDK+p+jswEX8iROVaoo3KUWG4MfzM+OWldhpdb0QwUf6E8W8u2Fw nGokuSD5U4H+D2i/SqMrG+ukQGDHI5uggAaPSS/Rq4oiQu6xj/F/ELw7Z+McuXXcSnIoZqW7byl oKk7eKlB11z5b/+De06doDkgzi4Jd2BCQh7F7t+zBCIDoOJ25wO1LToQAPDYxSPTBRvIUQinjEs IFzDSxSWItw6jzj2CnQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX8bgDWnlMBd/a Pj9RxCODK3F2sHtJirkm3EGo9EZOonGzAzpivz5/Ky529OZ0BiAOM0QxILOqUMlQbB469kUaAHy Eh599omndAinn1MDJ9sg0lRdGyD9Kzw= X-Proofpoint-GUID: PQsVWzlWVWOD4FEQrYrPL8ZyUynSKPjB 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-24_03,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-2609240060 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: 1790260909491158500 To avoid truncating the uint32_t return value from tpm_cmd_get_size() declare len as uint32_t rather than uint16_t. Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Stefan Berger --- 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:54 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=1790260883; cv=none; d=zohomail.com; s=zohoarc; b=biNKClsGDX3fkyCHmSmQD0m1VYaxWCnu6saXWGIGIo4WCXacBSZQNiLpXJft/X0ISkrZcANwCO4OkrPVnUbnI0MQETQG/qYUuuK1QFFHTJeQ4spX4t6g8gQV92yEBbfcMbimmmxWH0lx0sau3szzbI/KquvcW3nLa4b/PFbwCxI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790260883; h=Content-Type: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=9bDV08Jmwh6JRh6rrYAlnyokrdxAuIEUpc1OuGF7CUw=; b=U9o8p7iyqees1tfifL5loLCclvT0UdUqjfpmxNWx18bucys3FuQUlrxLFfVvwJvduZhnYqn28QFtPC3yNgc94+ACG1zA1KX/HLOO4NjVakxL3wxOubxP+tTAEvFQuhTY/OmSuAlJAohxDMQ4YxHKgB9qAt9aPSTI9Lmta1ORuZg= 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 1790260883052664.4640289697934; Thu, 24 Sep 2026 07:41:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9kdI-0003iG-Pw; Thu, 24 Sep 2026 10:41:08 -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 1x9kcp-0003Qd-Ij for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:40 -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 1x9kco-0004YA-0F for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:39 -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 68OC6QAn2028664; Thu, 24 Sep 2026 14:40:37 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 4gske1s2vv-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:36 +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 68OEOoY02194320; Thu, 24 Sep 2026 14:40:36 GMT Received: from smtprelay07.wdc07v.mail.ibm.com ([172.16.1.74]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbt2x5t7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:36 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay07.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68OEeZFj17826450 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 14:40:35 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ACE8358059; Thu, 24 Sep 2026 14:40:35 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1B43658058; Thu, 24 Sep 2026 14:40:35 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 14:40:34 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=9bDV08 Jmwh6JRh6rrYAlnyokrdxAuIEUpc1OuGF7CUw=; b=pDC5t/Gz0UlM0PT4R7Vzo0 n5xNdTXFtJxxZP3hp+mVk6U7Fo8q8tUcHBcQHuXoUVYTZdJ6NtpPcq0qYbFcIqZc VC3Dcyi8i8zx4CN+L/d4G6qqc9ySjD36GU3d0++WuDjN5m5wdg+fbtsGMxEFwCId dId9X2FVzJRuSFSzo+fQUqpGxFNNONjaWmE2JEMpnspqWwcnGiCf9cfb1N5Bhu+J ls76HPLdDE2rKeNVKWw/T7HIxFCTaSIf4UzwgHmHFyDZg9MOdxz+qXnU0L7yAFN6 /M0AZ7IWyQgw0WqdheZiZdVrgFLcvtFYgirWxWm1K4Gwo7+4oUA+M2X21LHmKoMg == From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 06/10] hw/tpm: crb: Do not clear internal buffers when backend is busy Date: Thu, 24 Sep 2026 10:40:22 -0400 Message-ID: <20260924144026.953360-7-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924144026.953360-1-stefanb@linux.ibm.com> References: <20260924144026.953360-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: xggpW3WY5_hgcreYM31QC2hMV1A5tziA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX5xQSM5t7e9mr NTn+qRkz/raTmnYTxmnr+7iG/5YZEAQz3l0TyB8wEJKQrE4WDuziD9EA1mhZSuR7nLN71mYj259 tnYROrsEJuaiS8McVCkGpKuFQc1Zi9xN8U9IR8bO3oGRUfoZxdSJR/8mgQWjYY5YUnojk7gRTVd qpMJzlMrFSyO4he8cxrdVUqXrkRBPoje4EWkphVdwV1j1BR/el81S6L/W01B6514sc0G6HXRzZ9 OkEzBEBT9V2X5fy2idw7jnT4Z+15BDMjj4kQLVriRT8PGiK9N9YkcTPjgPPXvp05ZUZka99uG8k 93NpKtrGpp25SpsZzfk0nG6LxLnnTx1O4IVsDcF7xI8t9DVEGLS6zD2FEwZP2QKB0EpI58gqsyu o0aKjx012Ht6G/U2iSzwE6Dh6U9eXQ6RWBzf4LqtvRIuB97ZSruI2k6YB41ApjopyY6oMZvQd2l zH7E/Z9hO4Uglfu6yjA== X-Authority-Analysis: v=2.4 cv=O/KsLx9W c=1 sm=1 tr=0 ts=6ab53664 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=BuBLyuNp-ztxktVGuZUA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX/OW32f6A9ihy z0PAj86OLg3MLDoZ51qwvkxWxCD5MXtkf3q8iEVR7rhyPqqaCMYB0ZxKEJdQtQ4+pFvXA8Ppf3N WqWbZaZ1WDtn7Yn5YkuzMQciRDKsj/k= X-Proofpoint-GUID: PCNljNAddMhqEnX9zvBTzejvrgqfSdFx 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-24_03,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-2609240060 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: 1790260884955158500 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") Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Stefan Berger --- 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:54 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=1790260890; cv=none; d=zohomail.com; s=zohoarc; b=axqyzp4j2XzzGkkGwgUnae+EhI59q/coeVaqqIiE4fBtUxnXP1hrRkjQ/08T1CmxNeI/GoSE1nx8uG2eiuh8cy2STJLDfpY04G+8ceWRsKZVFLYVFPGhORKGjS+fPX097xFp75sM718PA+Y9+/TAgpSNH9lxtAh2n23dcd8mpLk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790260890; h=Content-Type: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=lLwvKwvWU0J5sh7K92OO1NzDIdKRGuLYzKIPZBaXKdc=; b=nj/IECqadmL5F1yq+FOkCMewlKJFXCPO3wewhKz09h1e4MBt8xRvRnWlBOPbmABwUw5A2qCoF875xoZZzJ/qv5oVkiyssiQiwgYCetF2pIe/utwXCl9OZerofoa87nv83kfUaPEMysr7Qe95nfXaogxgLbQWUnOwO9tEI/UIw+o= 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 1790260890334475.4689314529353; Thu, 24 Sep 2026 07:41:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9kdC-0003bO-3o; Thu, 24 Sep 2026 10:41:03 -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 1x9kcr-0003Sm-Uw for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:45 -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 1x9kcq-0004Ye-BJ for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:41 -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 68OC6PO62192169; Thu, 24 Sep 2026 14:40:39 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 4gskg2ssj1-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:38 +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 68OENkPp2232310; Thu, 24 Sep 2026 14:40:37 GMT Received: from smtprelay04.dal12v.mail.ibm.com ([172.16.1.6]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gvbe1x977-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:37 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay04.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68OEea0E7078402 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 14:40:36 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 65F1F58059; Thu, 24 Sep 2026 14:40:36 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D150658058; Thu, 24 Sep 2026 14:40:35 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 14:40:35 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=lLwvKw vWU0J5sh7K92OO1NzDIdKRGuLYzKIPZBaXKdc=; b=LgIZo9XQlo1Z5jHoI3zRBk 3iPrcV0YWvf64Kc9pSCtckNYQ+hG/+9kwMEQiphhImD5iuHctK1BmfV2Mn3gvr5a mQTbHOYrfNzr1mnWgcSdFP/o+yF9hdHSqSWL8oBBsJkbeSl359hpNy5Z15ZG8rpc 7FqDb7oLiu2JaGXuHUElEBLw9LNQ7SLELOtV6aatsdaEfJjSrebNTqPEqJlsgWG1 5/2nEAw0f95oITwxY8rosueiR7mYV+4qwJGLTNCez1mtkpKKRONCeFhJo2aecPOp TYrsoyvQHTC+qfY9DjErpEpGR5DRn7QjO9pozb3UrXiMUuepsHt4szJ4JjX6ESQQ == From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 07/10] hw/tpm: crb: Avoid potential integer underflow Date: Thu, 24 Sep 2026 10:40:23 -0400 Message-ID: <20260924144026.953360-8-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924144026.953360-1-stefanb@linux.ibm.com> References: <20260924144026.953360-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: sF4FEwXizcKLsamlcAtbaCr4Y9v457vD X-Authority-Analysis: v=2.4 cv=I43w19gg c=1 sm=1 tr=0 ts=6ab53666 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=c1_1-GllvHXUlFLDVV0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX8CJwQOIT2hs3 QCxb268wx0MTypTDYF2KdJ/JYFRZzX5X41laJ3WS0cq5gpeSmRL/wST2Y313lWzRTxYCm4wQslM BTXs4g4b+NOSN4qHcV/ZEEV9V9khJjhn2deYuXJLUZ7uBbEM8WmtoSYKqVAUNe76+6cfJyOSvTt KnBx0OGs+liELutaUfcYBpu/qbnicR1AXhfeG7vmNbHRn20c1cxh5+9nw371G6+hGI1OPoCdhg6 F4l/PFHno3MEGqvZKFwMPpyq5oRHtIJ7WjGt2Fq5mgUcmbFeJh/pmKrlwZ45AlvuUk7KNscVXct ljCRVFxvmMMMA6mtp8lZI42RcsOWyXt98rmt/kqaP000YaHpkVpAz9di4jMReDoFQ18NSMKSxOJ fhMgyD6WZWPxQWE8aym16dPLTl1YZwqXGBFFMPjrh1XtoNC2eBKTmSARZnO4WYe08deNfI8Z0rr HKiE3Zjs9awA92VC+0A== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX4dKuPG7PH0rd iADFuzrtAF0JiYF1Yyojq2oA4M92bON6EndNiIUs5ttVtmDd70hxLI2/PUSZ3tqhb5bsPrqw4Ex taE+KiTP8vxPc10yPUQ1WPr+BxHNv6I= X-Proofpoint-GUID: 4xzOKpYL7p86J0toHR5TBk5J_N9qcCuA 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-24_03,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-2609240060 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: 1790260892955158500 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'. Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Stefan Berger --- 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:54 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=1790260884; cv=none; d=zohomail.com; s=zohoarc; b=kjFcn2Oulvq6XsdK9BISMxlsIRO7f8b5Ejp+fj9LSrWqKTJI+qEImzAqJGIW6fV8xCuTisVkCJwyG4lalj9uG9nkEaYiSOjtO9UDaSJNMa251GZPgBGWa7gREFHe8Y9+98szXG8IMsgDUqtLKKRlCto0Zkt2xfd/ySG+Hisno78= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790260884; 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=yjbm6/FawI1nsNNe2hKmcyMUVhmwHSeqgUTV3xKC+DQ=; b=ez4cwIFs++bsgzOXBLBcJ9WeKN/3RIaW9aFRjLQn2zpuUMyebWFvCJXCBVlmXBKs2mfX+XZdbX61WaYOZkEsLJoQODaZWd5kVJwQkY0A2NT8wEfRIgirSQGPSi3qdXj6enb5ilfaYbzrQLXl5jwsCI+FwlekduCwTHcCFVV2eW4= 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 1790260884908519.8076810507442; Thu, 24 Sep 2026 07:41:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9kdF-0003dv-K2; Thu, 24 Sep 2026 10:41:06 -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 1x9kcs-0003Sr-6v for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:45 -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 1x9kcq-0004Yj-FX for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:41 -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 68OC6PZr2183761; Thu, 24 Sep 2026 14:40:39 GMT Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskgshp2e-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:38 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68OENglZ2243977; Thu, 24 Sep 2026 14:40:37 GMT Received: from smtprelay05.dal12v.mail.ibm.com ([172.16.1.7]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gvb6qp9uh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:37 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay05.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68OEebfx2949664 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 14:40:37 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0C1505805C; Thu, 24 Sep 2026 14:40:37 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8A16A5805B; Thu, 24 Sep 2026 14:40:36 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 14:40: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=yjbm6/FawI1nsNNe2 hKmcyMUVhmwHSeqgUTV3xKC+DQ=; b=Ee/i6ASuTBal4mJBeGr00FQ3Ke3M2mveg To29PXXjnKv4IbRXVdpq8iy6HkespPmibF/9dxyqIaiH/VbUizRyOHta6xNytt/m pNT7HUXBWLQIJdjVABu55TcSkIpfBH2WXrMarSPxg+e87us0S8MMQOMVKZq3cR+i L2tY3DlSDGXEHc0AUKfruc+9OWDPGxlm30h9faMHUAxn75WVjW8RLc2ds4rt7jLN 6Zmlaay3TH5NOLiumVcm6I6uW3/nN+/6iVWuxCQ6lNUxOap+6Qvo4GFVZi+vCDmX g/86Kh9/ucF8P/vbQ0uObKdWln3URl8bdcb8o8xxiehSsnTJZllhA== From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger Subject: [PATCH v2 08/10] hw/tpm: crb: Implement tpm_ppi_uninit and use it in tpm_crb_unrealize Date: Thu, 24 Sep 2026 10:40:24 -0400 Message-ID: <20260924144026.953360-9-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924144026.953360-1-stefanb@linux.ibm.com> References: <20260924144026.953360-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=6ab53666 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=RjRD9IDzg1SnJ7wAG4QA:9 X-Proofpoint-ORIG-GUID: KT11DOQBvX4yatz3lLyv2jwIQHzz_Nbq X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX0RDzmOfEddBo wbxNMHKs/PPGX8JxaLbDcpvyRtPtBTyOylIMBXUT+JdHUeEU4ouqQQrQ9GVrkK5Bg78SKE4LuPh Q+1Tt9LnFXGWFei9NSkD6i9BwXDdKudDj+SXV7xZh6YzDQQLwhcnvTBAvvewWcJemrLApYdgknJ IWkGucd+25MNM5laLKSvNJHQ5fHD3jKO6A0+cHuX3v1PmVT0aiUtVFUVgu8s6C96HX402gwZJTx 6RrZgvm4IKWnYBV82kXYC0VbTJ+xWA2OMn4GcZIeTeRHuGfBoa/JPJfUH52ihqWrJt681EdfcyB s8stS8Afs1VsJXXCe3zImrRK8Xq2rDAwOFyq70UVzWF32GaC0tGk7Gcsdbq0evyIT1+MnqS07To k2v0fbtbG80RXglOjszS91Z2535mjal7h5pI+UF6CIQvLYoz5FlT6Ft0+QItIv5/Yg8Km+Op073 UgWnadFasgXopUtFCeA== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX4j4IVPNHPwKF TdaTXSVIGHAG1k4JSxIR9z2jU09i4MRJArJZU/YJ4qWWOyVKY5UGCgPoxCUJTJMX0gmXYvqg5gN jKj2fbLnX3VCo78ig81HvJMJgA6My0U= X-Proofpoint-GUID: ODe8j1cE95OasIj3k3wmO51uleau4TDe 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-24_03,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-2609240060 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: 1790260887039158500 Content-Type: text/plain; charset="utf-8" Implement tpm_ppi_uninit and use it for proper teardown of the PPI in tpm_crb_unrealize. Signed-off-by: Stefan Berger --- hw/tpm/tpm_crb.c | 3 +++ hw/tpm/tpm_ppi.c | 10 ++++++++++ hw/tpm/tpm_ppi.h | 10 ++++++++++ 3 files changed, 23 insertions(+) diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c index 9a9677db6b..92d36608d0 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); } + + tpm_ppi_uninit(&s->ppi, get_system_memory(), OBJECT(s)); } =20 static void tpm_crb_class_init(ObjectClass *klass, const void *data) diff --git a/hw/tpm/tpm_ppi.c b/hw/tpm/tpm_ppi.c index f0c34291dc..35baa083f2 100644 --- a/hw/tpm/tpm_ppi.c +++ b/hw/tpm/tpm_ppi.c @@ -57,3 +57,13 @@ void tpm_ppi_init(TPMPPI *tpmppi, MemoryRegion *m, =20 memory_region_add_subregion(m, addr, &tpmppi->ram); } + +void tpm_ppi_uninit(TPMPPI *tpmppi, MemoryRegion *m, Object *obj) +{ + memory_region_del_subregion(m, &tpmppi->ram); + + vmstate_unregister_ram(&tpmppi->ram, DEVICE(obj)); + + qemu_vfree(tpmppi->buf); + tpmppi->buf =3D NULL; +} diff --git a/hw/tpm/tpm_ppi.h b/hw/tpm/tpm_ppi.h index 88f316ee95..c173889033 100644 --- a/hw/tpm/tpm_ppi.h +++ b/hw/tpm/tpm_ppi.h @@ -32,6 +32,16 @@ typedef struct TPMPPI { void tpm_ppi_init(TPMPPI *tpmppi, MemoryRegion *m, hwaddr addr, Object *obj); =20 +/** + * tpm_ppi_uninit: + * @tpmppi: a TPMPPI + * @m: the address-space / MemoryRegion to use + * @obj: the owner object + * + * Function to unregister the TPM PPI region. + */ +void tpm_ppi_uninit(TPMPPI *tpmppi, MemoryRegion *m, Object *obj); + /** * tpm_ppi_reset: * @tpmppi: a TPMPPI --=20 2.55.0 From nobody Sat Sep 26 19:11:54 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=1790260875; cv=none; d=zohomail.com; s=zohoarc; b=D9P/uhLVzsO/+L4wa/D7xb+ZPtm+pPFpKEOkQJE1xz42n/0beocnYgxri1A3WPOhrkdXJ22Cw3/EoPBLsnXUzs/o8ah5ene0qI0faZb00LjNNYnc4MMKmTqzPSAXkR84WrXhiOUUrJv+67x56BjlSkK3Nt/HNaszPgGaXocUQFE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790260875; h=Content-Type: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=6obO0Y0/nzKyGLLRCIa7C7WxFCgkgaTn097GJOWAVig=; b=Ko+WYXbCkel4BODQPD1j4KMSf6cfRjDG3g6wfSqMYrDWuEBKnfHFCtb1NKf4B3he0DsDjj0z8VKI1BYuEvCy9D0m7tfiG/ge0hY5HJ2b2JGs6KZ0naAPBuK/V58YOof7BrBXw7VS3TfgENig+6rz4EocQgy9nFKzWtlvB/3eTes= 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 1790260875676674.0887872532904; Thu, 24 Sep 2026 07:41:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9kdK-0003k2-Pa; Thu, 24 Sep 2026 10:41:11 -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 1x9kct-0003Sw-8z for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40: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 1x9kcq-0004Yu-KL for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40: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 68OC6F1N1009604; Thu, 24 Sep 2026 14:40:39 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 4gskgqrx4b-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:39 +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 68OENmYT2245773; Thu, 24 Sep 2026 14:40:38 GMT Received: from smtprelay05.dal12v.mail.ibm.com ([172.16.1.7]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gvb8jx9sr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:38 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay05.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68OEebHG31982328 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 14:40:38 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B893B58058; Thu, 24 Sep 2026 14:40:37 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 308275805D; Thu, 24 Sep 2026 14:40:37 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 14:40:37 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=6obO0Y 0/nzKyGLLRCIa7C7WxFCgkgaTn097GJOWAVig=; b=SLzug00Y7M2954XIErebZb 7KDo+Xpoc1PWpKBfodeV2hCTDPcNM9ZD9qnyltGzoZ1ltshgifKKm2kWUKY73VGQ +p1Y0Fi7XdtfKlLh8Yh6skLE2eGEcMqxl0voeFQIvqjxc8D/rLbo4e6MVVJWMSIq +cqPsFqKASF9BJySE99ZSW5odPUQ4YofUtAbVHtzc0K03f2YDc0DV9eUKE06p1sh 9knqVPoW231PrRVzMolgviFfmAqJEeP8rZ/E35YiDNQm372//GDCQt+/24B0xg8B TFUmMV/IBTAnxsGATO1QhuAPgPewMtY+Ruv1+YFi1dz+DDu5i1amNp6+jt9Xklbg == From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 09/10] hw/tpm: crb: Consider response_buffer->len of received response Date: Thu, 24 Sep 2026 10:40:25 -0400 Message-ID: <20260924144026.953360-10-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924144026.953360-1-stefanb@linux.ibm.com> References: <20260924144026.953360-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=6ab53667 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=rD1lyLEvv5Bxigb_1PMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX+wTQLBiYP4ej so8V+eowAvkhJKC2XaNFkdGRIPbaeKYWpryr0s2C/DS0v2u3claGsyrQzygnqSP4MVTrjDBBo7e s4pIb10LwVuFWhFKLee80YcqhGNaCOqaq5v2piaDsL62C+xJE+tK/lG0lVclZ6K2z3r0+CT4rXN 3om4MFyFjgE7/9kB0MciX0hhNBI/+OFvu7rFGfn9h+lFhKG/d3g7Vx/OaTcXvmaEm6H2GGm5raX tD2BHl5LRekebqRfXVgk1+uAWU/2dpnlOmRWCSocZnigdKY3g8X+v+XMkYF7hwH8VAzATJiGIsm 7Z8QzMBmL7PeGjGe4c9Fn7kWImOt/kZTI2UXTpoeO57Np51Ofnc+YkqDZ0t6844gT60wLdRq9rE UUaq0y3N/5ODOjOg9UADu6DbYVKHjDsufTlOlQazXyYSQVkAd1ypav/uQQ2KhOKo9B8yRpMO1UX Sr9onIIWmOtSltz8fgw== X-Proofpoint-ORIG-GUID: HoWNwsBBNuaGEiUsbtHX39aC0xiBlZJ9 X-Proofpoint-GUID: OE2gRIX2WpN-i0AOpzzesvsWMaybVb-S X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfXwGjP3aF5xDpa 8dl1g1GYDYpCdKsj0+QbBoI4J6bf11MQXASTOhMr4XSf2L4V9Yd7U57PwjcJZOzMNivU2Hmsg5B 7LB/Gh6dBG7Nz6DAFXKj6TejW1PuZ2k= 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-24_03,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-2609240060 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: 1790260877199158500 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") Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Stefan Berger --- 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 92d36608d0..5c6965f447 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=1790260937; cv=none; d=zohomail.com; s=zohoarc; b=gy3P+/9w8kFCXb16NDeJMCr8h5ZVtBKgtvDmDCg4EIOj3ineXSYBOZ9jHIzhF3NLRyP7OL0NpqhkUYJKF/CYIiOP4iupafuNPTu+bCXwwFK7A7bwpNQnpEK2SOyCEseInwWaunrC3mQoLqNx1GvhfuAaqqpjb+meSmyhGttFLLk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790260937; h=Content-Type: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=wvKNC68fB/4KCoF9RcZ6H/26rnYyA4+27dfgr9SNgKI=; b=muW/p4j0F/CqpcZiIWg4ejj600wXeG85EVQI5w2BLUrd/LLiVGxb0qRfRiYkwCEUeeBd9aAAX69NCaopBN+TRECqSmix5o2wgyy4WMGeNWW2YQunj7hQkq+avjdg+WjwPhIIX3jF4fN81XHjdkqjUq+EqfiizQE+Fn4mybN3Mh8= 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 1790260937077750.5876489057424; Thu, 24 Sep 2026 07:42:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x9kdM-0003pO-GE; Thu, 24 Sep 2026 10:41:12 -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 1x9kct-0003TI-SA for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40: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 1x9kcr-0004ZG-AG for qemu-devel@nongnu.org; Thu, 24 Sep 2026 10:40:43 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68OC6QjF2221935; Thu, 24 Sep 2026 14:40: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 4gskdvgywc-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:39 +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 68OENgTA2245197; Thu, 24 Sep 2026 14:40:39 GMT Received: from smtprelay06.dal12v.mail.ibm.com ([172.16.1.8]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gvb8jx9ss-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Sep 2026 14:40:39 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay06.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68OEecxH32965160 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Sep 2026 14:40:38 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 70D915805B; Thu, 24 Sep 2026 14:40:38 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DD7E958059; Thu, 24 Sep 2026 14:40:37 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 24 Sep 2026 14:40:37 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=wvKNC6 8fB/4KCoF9RcZ6H/26rnYyA4+27dfgr9SNgKI=; b=H16Pcu3oghkRt6CdLUsybJ 2vh1UEAa8g1l7zkdP59foLIdx44OW8EJRlssBVz9hS0sDNWPgUKHhN0C1MJzLyuJ XaSYn5cVH2DUInqhP6+pXkA1lZdSwl7b7sfYOeChX65SkEBQK2CQSXWuVjgEW1bj e0aWn7I+ea2SbM8ZsLkfYjd2Dy42vhJXd+1tRqfFyAfFXNUVDK8SMPkiy2aKnp6f UPn3DFLbEsU9B04lDeaQRX6+uxiJzDkFF13cCrnHi+iWyTsN5c4+mGtIhIvylt5E Evhf8QRZtcpGWbn2kAKYOO35tZhz2zbd9e0ksd3Wvs2A2I/6cZCyeIVzltD0P5bw == From: Stefan Berger To: qemu-devel@nongnu.org Cc: armenon@redhat.com, marcandre.lureau@gmail.com, Stefan Berger , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v2 10/10] tests: Add tests with commands with bad length Date: Thu, 24 Sep 2026 10:40:26 -0400 Message-ID: <20260924144026.953360-11-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924144026.953360-1-stefanb@linux.ibm.com> References: <20260924144026.953360-1-stefanb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: _IomkbVow_q4fFLd_vqW7f-SwiabTSLS X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfX5An0SYNCdXHz UARAZDPHWo2NSzuLxB+tYzfBgV/RZkJ6zmbXZia1WOJ7y3EW/o12Vt4mgFRsKPNpRmiVKmEZtSf MtbhS9twqXSbOU7D/HLvn9Q1i/DCJRg= X-Authority-Analysis: v=2.4 cv=FLiOVOos c=1 sm=1 tr=0 ts=6ab53668 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=rfWPa_Qpybt_VECXH-MA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-GUID: 1LdXUmQgQVhchbne3dd3oLCkCLNJblqe X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI0MDA2MCBTYWx0ZWRfXw5+UZsxLyfVm be8oOa4afGM7BarcNh7ni154rzn6zznBwY+Mt8BBuwUjyov5IylH+JkW0xn4WAco6sfD7cAjCC4 YW/dyPeLnq+7ZpvwYBCqsSOJRG2zxmHW7zKqnTmyf4pNLHaNKwOGFJ6J63MQDzBVBw9AqL0GUey QjJOVLtEflGR7BAU936bIohRgWzZ8DRt/xgcfY4J7tdzR1urgQeOy2xt9eIcHxwV7YdTpL3ooe2 +MVAY8wRxNecJli3/A0VTMCvl5qjrkWMzsp5PYdMF6hWLd1HBY9yZtKsD6apAR1AIHMlRsp+Wgx nANNLhN4waJy/1JHkqiRtJsncqa5iEF4R3HigdeBLQhAgouzLRVizk6SBjMzEB+zdj1UpH/G/jo bkcWfcZbpgpdulyThmuQGK4R8QkQVbGYa1yOfo3GLtMUG2UwQl54fY8IWebNk9VVwZvl/WTZazb dbr2xODeGBGfgLbD2Lw== 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-24_03,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 suspectscore=0 bulkscore=0 lowpriorityscore=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-2609240060 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: 1790260939919158501 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. Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Stefan Berger --- 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