From nobody Sat Sep 26 20:00:46 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1789571450; cv=none; d=zohomail.com; s=zohoarc; b=JyCc1O/qkDdNyMLjXGuPN9nXz+uNlBpEyGD2gRGJbuQlSoproX6QNsfHrcJnANc2WwMiPVw/3GpEEDzkVWfwPssBJLfqNTYxkGQKvXfIPGD7AyL5SRIwaK0nZOj0yu/ce+avxG1PQHzkgMgSQZT8KJdoc28UH6ww1k2reIlN4K0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789571450; 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:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=PIT3TyieWx42Sg74YtgUs+uuEvQmhcL3DRQI3EBPTcA=; b=PTqYoCw6kBidTuUwhwFPkWK0uvM9oFZR5VZ3US1R1GsYJ3LjBSRPthjKXSpes9JCt/VlsYRO8+gaW2t0um5AJCHx+Sw7JMH/ErrdlI05bmr3MdO7ZF1m+aJGvtlDtFeTBXsCP6f3BVWAwNL/XrdRnXhQ4SwtQHhU9n0U/XMU5sg= 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=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789571450838543.5080605858933; Wed, 16 Sep 2026 08:10:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6rHJ-0004mg-EN; Wed, 16 Sep 2026 11:10:30 -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 1x6rHC-0004lr-To for qemu-devel@nongnu.org; Wed, 16 Sep 2026 11:10:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x6rH6-0004Gc-Ra for qemu-devel@nongnu.org; Wed, 16 Sep 2026 11:10:20 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-435-wU81QP8lOyqPTKdPCEmz0g-1; Wed, 16 Sep 2026 11:10:13 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-49cf4cc2125so25134085e9.2 for ; Wed, 16 Sep 2026 08:10:12 -0700 (PDT) Received: from lleonard-thinkpadx1carbongen13.rmtit.csb ([151.29.41.106]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fbd112455sm40865e9.12.2026.09.16.08.10.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 08:10:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1789571415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PIT3TyieWx42Sg74YtgUs+uuEvQmhcL3DRQI3EBPTcA=; b=TvDG9FfYscjhQmEVy8tsiKuRge9/gN9i7yih0YHJFyte/010hGSMADAapsqn/jVUGBVCKV +ckizGbTEXbK7RjqwqGDjricpQtYHUSRivUUxP63I0JnbvxW9rN+i/orZdzZeGCK85KCCU 6ywEngqqOHMVZ6+97MdYezv6D42CeJM= X-MC-Unique: wU81QP8lOyqPTKdPCEmz0g-1 X-Mimecast-MFC-AGG-ID: wU81QP8lOyqPTKdPCEmz0g_1789571412 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1789571412; x=1790176212; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=PIT3TyieWx42Sg74YtgUs+uuEvQmhcL3DRQI3EBPTcA=; b=VZ8vDp5k84Z3IWc9uMkkRfGw9pTFUaBOf2iJxce6JNS+Zo0E0vfoAXetDKCzg74cRF zzdLCIIh53u9AEEYNFRiii3VK/i2cSP6XrHgCvJCMwmni/BYweduylHZutng1OlhEfXc VtSg95qhE97GB+Waw6lXv28bvJ8YeUtKnl531B98kvxvxL14fQaEcQ1BSHNfflmE6zI7 co6u4pyY1EGeOHq7XjERUzSMijdAhapyVz92XL43O3Y59ImT4k2EMDqTq7IJO7QdYjFm hSaDKri6WHS+gNiW7T7QN4+2dgRGIA3xJC6RppCABG3FNzVNTPHXNGs8JnVuYvqF7YVW cllQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789571412; x=1790176212; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=PIT3TyieWx42Sg74YtgUs+uuEvQmhcL3DRQI3EBPTcA=; b=QL8glLOC0q2nOc+CVot0IiwEIMZ/zJJwD4NSWrYAH7LUsJtnooWNENNzvC+d/mzNWf fRpiTJurpEErv8+RTsUnCqxuchwdMLs1sxPbB6yxXlITg/iZXtsAPoOravMoNpb2YsEM 5xprL2Ny00gR/JawG0K15r+2pKl778oAO8vn7E3vpO0x7UkT26kwo54RV4Z1HMAmpLLo k8VolPlMbJjaIxp39esfBpT/N2m0A/2AnqoBfhe8r+vkNAAqUtXZN0fRqaZqpnUE8aQk UjMC0OZ9JMyvlpOSBtBit/YIvgUQIzhMmvyrfVkE3GsWZqHsr3flRmJflKmWC5bck/zq 0IbA== X-Gm-Message-State: AFuF++m+LvnBr1D1tkDoApRTsKGQhMY0qfxdqWJ7bMQt7vylwXyIbUy/ 2AwLGCP4v0ie07M/pFU6jHdzd2xn0CSJfE5RIfXgikf/6LzOi5TniJtvLs9Lp8ToYJrp3uacZ74 Bfy0sWKZLNmKujzqCnjqiUv3/O8dYGFKu4LT2dAxNSbv3ix/CHz4RmbjSRf6o6oCBo3oxsGS663 J5PW9ueev49QOIzRpDuO+h3pGervgNsB20uHVA/RzrUcQ= X-Gm-Gg: AYBFou0FpwlIqtUDJwu50h/TxRoShZ7f9avEr5YFE+TON7gZ7KcoLCZpNm4t5/FzEjI tt4IaqQOZh4PoKYhE4oGFTFnqGvm240nSK96dXoBDXDi0UAI9V9qcfbmKAvs2Wo82EykfDCFMSS PaNMZFu+MURju/CKpH3J85fB8QtZy2s+526ErPTkCSzKdOl2druuXobNhoXZATMbXGiJljamrW9 VJgxueD1SFbJmzf3Gxm1XF2qA5aTYdSCpM/JCcqX4gthcEJNN7QJndWv/F8wCHxCFvRngEBJU/R v8RcldIlqJRnYTwTGglK0BObLVppFw/msX6qYzuoyD1lSPUu9AgU553mWdWw445p5UdmnDFkDOc Pfa4P4RrKyVlgIwtElREETzTiza6ijkREpgiXNhoR5Tg/yOzP76+uweSug3+2JeZ48/Ox X-Received: by 2002:a05:600c:474a:b0:49c:ee20:e787 with SMTP id 5b1f17b1804b1-49eac464371mr52820425e9.1.1789571411636; Wed, 16 Sep 2026 08:10:11 -0700 (PDT) X-Received: by 2002:a05:600c:474a:b0:49c:ee20:e787 with SMTP id 5b1f17b1804b1-49eac464371mr52819575e9.1.1789571411107; Wed, 16 Sep 2026 08:10:11 -0700 (PDT) From: Luigi Leonardi Date: Wed, 16 Sep 2026 17:10:05 +0200 Subject: [PATCH v5 1/2] igvm: validate and honor byte_offset in parameter directives MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260916-fix_offset-v5-1-11cf8ef37854@redhat.com> References: <20260916-fix_offset-v5-0-11cf8ef37854@redhat.com> In-Reply-To: <20260916-fix_offset-v5-0-11cf8ef37854@redhat.com> To: qemu-devel@nongnu.org Cc: Gerd Hoffmann , Stefano Garzarella , Ani Sinha , Paolo Bonzini , Zhao Liu , qemu-stable@nongnu.org, Luigi Leonardi X-Mailer: b4 0.14.3 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=170.10.129.124; envelope-from=leonardi@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1789571452249158500 Parameter directive handlers either ignore param->byte_offset, overwriting each other when several parameters share one area, or use it without validating it, letting a malformed IGVM file corrupt QEMU's memory. Add qigvm_get_param_data(), which validates byte_offset against the parameter area size and returns the offset-adjusted pointer together with the space left after it. Convert all parameter directive handlers to use it and to check their writes against that remaining space, so that no parameter can be written past the end of its area. Fixes: c1d466d267 ("backends/igvm: Add IGVM loader and configuration") Fixes: dea1f68a5c ("igvm: Fill MADT IGVM parameter field on x86_64") Fixes: 1c4bd8f13c ("igvm: add device tree parameter support") Signed-off-by: Luigi Leonardi Reviewed-by: Stefano Garzarella --- backends/igvm.c | 89 +++++++++++++++++++++++++++++++-------= ---- include/system/igvm-internal.h | 5 +++ target/i386/igvm.c | 12 +++--- 3 files changed, 77 insertions(+), 29 deletions(-) diff --git a/backends/igvm.c b/backends/igvm.c index 7b7bdc72b7..9a2bafc0ca 100644 --- a/backends/igvm.c +++ b/backends/igvm.c @@ -101,6 +101,38 @@ qigvm_find_param_entry(QIgvm *igvm, uint32_t parameter= _area_index, return NULL; } =20 +/* + * Get parameter area data at byte_offset with bounds validation. + * On success, returns offset-adjusted data pointer and sets param_size + * to remaining space. + * Returns NULL on failure. + */ +uint8_t * +qigvm_get_param_data(QIgvm *igvm, const IGVM_VHS_PARAMETER *param, + uint32_t *param_size, + Error **errp) +{ + QIgvmParameterData *param_entry; + + assert(param_size); + + param_entry =3D qigvm_find_param_entry(igvm, param->parameter_area_ind= ex, + errp); + if (!param_entry) { + return NULL; + } + + if (param->byte_offset > param_entry->size) { + error_setg(errp, + "IGVM: byte_offset 0x%x exceeds parameter area size 0x%= x", + param->byte_offset, param_entry->size); + return NULL; + } + + *param_size =3D param_entry->size - param->byte_offset; + return param_entry->data + param->byte_offset; +} + static int qigvm_directive_page_data(QIgvm *ctx, const uint8_t *header_dat= a, Error **errp); static int qigvm_directive_vp_context(QIgvm *ctx, const uint8_t *header_da= ta, @@ -605,7 +637,7 @@ static int qigvm_directive_memory_map(QIgvm *ctx, const= uint8_t *header_data, const IGVM_VHS_PARAMETER *param =3D (const IGVM_VHS_PARAMETER *)header= _data; int (*get_mem_map_entry)(int index, ConfidentialGuestMemoryMapEntry *e= ntry, Error **errp) =3D NULL; - QIgvmParameterData *param_entry; + uint32_t param_size; int max_entry_count; int entry =3D 0; IGVM_VHS_MEMORY_MAP_ENTRY *mm_entry; @@ -626,14 +658,14 @@ static int qigvm_directive_memory_map(QIgvm *ctx, con= st uint8_t *header_data, } =20 /* Find the parameter area that should hold the memory map */ - param_entry =3D qigvm_find_param_entry(ctx, - param->parameter_area_index, errp= ); - if (param_entry =3D=3D NULL) { + mm_entry =3D + (IGVM_VHS_MEMORY_MAP_ENTRY *)qigvm_get_param_data(ctx, param, + ¶m_size, err= p); + if (!mm_entry) { return -1; } =20 - max_entry_count =3D param_entry->size / sizeof(IGVM_VHS_MEMORY_MAP_ENT= RY); - mm_entry =3D (IGVM_VHS_MEMORY_MAP_ENTRY *)param_entry->data; + max_entry_count =3D param_size / sizeof(IGVM_VHS_MEMORY_MAP_ENTRY); =20 retval =3D get_mem_map_entry(entry, &cgmm_entry, errp); while (retval =3D=3D 0) { @@ -682,17 +714,22 @@ static int qigvm_directive_vp_count(QIgvm *ctx, const= uint8_t *header_data, Error **errp) { const IGVM_VHS_PARAMETER *param =3D (const IGVM_VHS_PARAMETER *)header= _data; - QIgvmParameterData *param_entry; + uint32_t param_size; uint32_t *vp_count; CPUState *cpu; =20 - param_entry =3D qigvm_find_param_entry(ctx, - param->parameter_area_index, errp= ); - if (param_entry =3D=3D NULL) { + vp_count =3D (uint32_t *)qigvm_get_param_data(ctx, param, ¶m_size,= errp); + if (!vp_count) { + return -1; + } + + if (sizeof(*vp_count) > param_size) { + error_setg(errp, + "IGVM: vp-count parameter exceeds parameter area " + "defined in IGVM file"); return -1; } =20 - vp_count =3D (uint32_t *)(param_entry->data + param->byte_offset); *vp_count =3D 0; CPU_FOREACH(cpu) { @@ -707,17 +744,23 @@ static int qigvm_directive_environment_info(QIgvm *ct= x, Error **errp) { const IGVM_VHS_PARAMETER *param =3D (const IGVM_VHS_PARAMETER *)header= _data; - QIgvmParameterData *param_entry; + uint32_t param_size; IgvmEnvironmentInfo *environmental_state; =20 - param_entry =3D qigvm_find_param_entry(ctx, - param->parameter_area_index, errp= ); - if (param_entry =3D=3D NULL) { + environmental_state =3D + (IgvmEnvironmentInfo *)qigvm_get_param_data(ctx, param, ¶m_siz= e, + errp); + if (!environmental_state) { + return -1; + } + + if (sizeof(*environmental_state) > param_size) { + error_setg(errp, + "IGVM: environment-info parameter exceeds parameter are= a " + "defined in IGVM file"); return -1; } =20 - environmental_state =3D - (IgvmEnvironmentInfo *)(param_entry->data + param->byte_offset); environmental_state->memory_is_shared =3D 1; =20 return 0; @@ -814,12 +857,12 @@ static int qigvm_directive_device_tree(QIgvm *ctx, co= nst uint8_t *header_data, { const IGVM_VHS_PARAMETER *param =3D (const IGVM_VHS_PARAMETER *)header= _data; g_autofree void *fdt_packed =3D NULL; - QIgvmParameterData *param_entry; + uint8_t *param_data; + uint32_t param_size; uint32_t fdt_size; =20 - param_entry =3D qigvm_find_param_entry(ctx, - param->parameter_area_index, errp= ); - if (param_entry =3D=3D NULL) { + param_data =3D qigvm_get_param_data(ctx, param, ¶m_size, errp); + if (!param_data) { return -1; } =20 @@ -837,14 +880,14 @@ static int qigvm_directive_device_tree(QIgvm *ctx, co= nst uint8_t *header_data, } =20 fdt_size =3D fdt_totalsize(fdt_packed); - if (fdt_size > param_entry->size) { + if (fdt_size > param_size) { error_setg(errp, "IGVM: device tree size exceeds parameter area" " defined in IGVM file"); return -1; } =20 - memcpy(param_entry->data, fdt_packed, fdt_size); + memcpy(param_data, fdt_packed, fdt_size); =20 return 0; } diff --git a/include/system/igvm-internal.h b/include/system/igvm-internal.h index 9e9fa1d9af..0467eff0ce 100644 --- a/include/system/igvm-internal.h +++ b/include/system/igvm-internal.h @@ -81,4 +81,9 @@ QIgvmParameterData* qigvm_find_param_entry(QIgvm *igvm, uint32_t parameter_area_index, Error **errp); =20 +uint8_t * +qigvm_get_param_data(QIgvm *igvm, const IGVM_VHS_PARAMETER *param, + uint32_t *param_size, + Error **errp); + #endif diff --git a/target/i386/igvm.c b/target/i386/igvm.c index ad9bf87761..9c2f8d5164 100644 --- a/target/i386/igvm.c +++ b/target/i386/igvm.c @@ -187,20 +187,20 @@ void qigvm_x86_bsp_reset(CPUX86State *env) int qigvm_directive_madt(QIgvm *ctx, const uint8_t *header_data, Error **e= rrp) { const IGVM_VHS_PARAMETER *param =3D (const IGVM_VHS_PARAMETER *)header= _data; - QIgvmParameterData *param_entry; + uint8_t *param_data; + uint32_t param_size; int result =3D 0; =20 /* Find the parameter area that should hold the MADT data */ - param_entry =3D qigvm_find_param_entry(ctx, - param->parameter_area_index, errp= ); - if (param_entry =3D=3D NULL) { + param_data =3D qigvm_get_param_data(ctx, param, ¶m_size, errp); + if (!param_data) { return -1; } =20 GArray *madt =3D acpi_build_madt_standalone(ctx->machine_state); =20 - if (madt->len <=3D param_entry->size) { - memcpy(param_entry->data, madt->data, madt->len); + if (madt->len <=3D param_size) { + memcpy(param_data, madt->data, madt->len); } else { error_setg( errp, --=20 2.55.0 From nobody Sat Sep 26 20:00:46 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1789571481; cv=none; d=zohomail.com; s=zohoarc; b=a7fx+D38FnFCsNUMqI7ijZtsObBxtovsvg3b9+4W5IVYSXIxalAT0Utj3cNe3SalfuH3FWHU4kKvkXdEfNv4sF2N+hdHjPsOdLUrqwKdOnqRR4xn/oXYm184UCGzJuAcoAb6JOPaWEMVhi8dhU6tYWFEsS+8MDwYMNZdH2+rvBs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789571481; 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:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XOGgYjCQ/eE/ZQO6VLQZA05Bps2xeA+ra0/sSQXijm4=; b=DJRlLFKAv/1HOAIvGIuOAM8xPEjiYKV988F0uGQkPGXPDGxjCKRlDHY0b5zfBUQm/oVTLGACdJmSV8IElz9WWnSxrLib3ymD/MVHIMCV3B2zH7XFpTEgBen9Zt8XjNcv4V199wCyEchAh2J0jHYN9o3nNPjk7BSI/6ztBKQxyNA= 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=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789571481285130.20836008015397; Wed, 16 Sep 2026 08:11:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6rHR-0004of-9T; Wed, 16 Sep 2026 11:10:37 -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 1x6rHC-0004ls-Tn for qemu-devel@nongnu.org; Wed, 16 Sep 2026 11:10:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x6rH7-0004H5-3o for qemu-devel@nongnu.org; Wed, 16 Sep 2026 11:10:19 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-128-jjqSXYtdMCWWTh-uhVeR9Q-1; Wed, 16 Sep 2026 11:10:13 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-490a767c7dcso47944065e9.2 for ; Wed, 16 Sep 2026 08:10:13 -0700 (PDT) Received: from lleonard-thinkpadx1carbongen13.rmtit.csb ([151.29.41.106]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fbd112455sm40865e9.12.2026.09.16.08.10.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 08:10:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1789571416; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XOGgYjCQ/eE/ZQO6VLQZA05Bps2xeA+ra0/sSQXijm4=; b=JYnr6KGfsIDda5f0y1+cdb7PJ6xuMFevkfrTqIV52cZWLMbRwF0nqZr58eP0N7QUMUl1FK lm/EspTawHW8upx9SVmlQnHv2YZifxyJq1Ri6vnwkdShF9yUvTxd3JCNir2L4aUFYJcbjZ 019wTSEmo9fDygDHaMGy7ldE9ACeNsM= X-MC-Unique: jjqSXYtdMCWWTh-uhVeR9Q-1 X-Mimecast-MFC-AGG-ID: jjqSXYtdMCWWTh-uhVeR9Q_1789571413 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1789571412; x=1790176212; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=XOGgYjCQ/eE/ZQO6VLQZA05Bps2xeA+ra0/sSQXijm4=; b=J4Rj+tuYJ+RD+V/HlRF6bjmj13eiCKHXIafWTA3vnFNe3AjonUxXhCAxnkc/fQm6by mYR6sgghWeUec1G89LmgbrafXhmZJwCnK658jNmZEZdOsvZ78grQMjeTBcRuq+GfyTgv GHRXiIEtcM40+0iVpqgYVeWdIwpP2UgszPcCscZrYiDiXcWMYeYaC+XbJuiSJwaoSWez o5ofEZ3NlexkXN2KCCQtctQMmMfdp1rzzO5nAq5H4zcv9Dw8EFvL37a8thzcE0tgR6Ij MJrCeo7z4u02TP3n84arcbWBv8oQw9jXKIdAgs7+oANK6zIhuZ75gSmpSpo2Zs1BvD2U LW/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789571412; x=1790176212; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=XOGgYjCQ/eE/ZQO6VLQZA05Bps2xeA+ra0/sSQXijm4=; b=LIPnzoN9MKL8Of1zdCsJkVyrDmEdWBg5zY+T8rhiZLWEHFgHsAmfe0xd6w+JNXXBj9 m+jObQz0qRjnGjKV/KdizDYDSVtFG4DdRuMEPzpxv9a5XgHVe2uSHRcDfqyFqam949S7 rxnhypqT7Ij+gGwisPWtFN0fAzns/ywhEWR9xJ8orKxMD4KHjkFx69a/Xv6PFf8llSBG qn1M12/p1qTN0tR6MANFBbqxEmTLgWkKpSb1+TnHQhteslbooo8miC7CTbp6O0KurcYL lnMZm0WO/CFf/v//OKouOm9POM/2HhMLhdvJR70a2T2qdYKpeavwrS8dMjGoYceJ2bI7 T5Cw== X-Gm-Message-State: AFuF++lQ+ZHoZuBkqUsCGU9UFyCqL8tIwLGgv4ZRu3VgoiSCRDXEYdM7 WgcOwjGbzT18gJcwl7Qimj8LyNINliq/CJM8vW2PdmNjiEz1+1dyNGeFPLnZI7/XjoYm4xN8c4K zQuwFCEB06/Jguw6U+g7HY3A+FrqjOuSelEeBPdwsxOeycC/jnnsiVfyGIKFx/5CYhWB+nIVMHx 89RoSMpNzW2+qsSeelcDE1sUMjc1bAhfL45B1O0WJLfbQ= X-Gm-Gg: AYBFou1nQ1tlTjfGrRoUADpbmYotabD6a2i/q3d7U1CrLHSg05FG8T5rVb3N5AtnMxm yD7nVWHLbgdFEUquKZYLs4atI/L3aR1KRqZ0ZE/7wY4No8M6ZGzTwkkVvMSKlRwn2zeqObndf3M a2lV/ARRAO+MYSji2/gdiie/8H89mxj0QjdpaCi20OAgjsQ7O5ubqCj8oGQpza8PxbZU6f3buj4 4xJbgAOeoDyij/DH1pfsNWpe+NQ5a7FinXtpz7X/QpM7whWsDIi6P4d8fsR181j2UpyuL9+/6QT NMa+4WDpLktqM4IUbIZ9ttx2GifGxDKCfCb59KT2tk73YkLWwq6i1lkTjpOyWCgHQUBtvg53NEp 7CMXKaEMAZGOoF+6Mo8Wr9KbfAkB8PzWd+ePZM570MetTnDyjjfnHK0qLKNzajTgm2Xdy X-Received: by 2002:a05:600c:1c1d:b0:49c:fc6c:be08 with SMTP id 5b1f17b1804b1-49eb733de1emr44827455e9.31.1789571412678; Wed, 16 Sep 2026 08:10:12 -0700 (PDT) X-Received: by 2002:a05:600c:1c1d:b0:49c:fc6c:be08 with SMTP id 5b1f17b1804b1-49eb733de1emr44826695e9.31.1789571412179; Wed, 16 Sep 2026 08:10:12 -0700 (PDT) From: Luigi Leonardi Date: Wed, 16 Sep 2026 17:10:06 +0200 Subject: [PATCH v5 2/2] igvm: mark qigvm_find_param_entry as static MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260916-fix_offset-v5-2-11cf8ef37854@redhat.com> References: <20260916-fix_offset-v5-0-11cf8ef37854@redhat.com> In-Reply-To: <20260916-fix_offset-v5-0-11cf8ef37854@redhat.com> To: qemu-devel@nongnu.org Cc: Gerd Hoffmann , Stefano Garzarella , Ani Sinha , Paolo Bonzini , Zhao Liu , qemu-stable@nongnu.org, Luigi Leonardi X-Mailer: b4 0.14.3 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=170.10.133.124; envelope-from=leonardi@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-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 @redhat.com) X-ZM-MESSAGEID: 1789571482117158500 Previous commit removed all external usage of `qigvm_find_param_entry`, therefore we can mark it as a static function. Suggested-by: Stefano Garzarella Signed-off-by: Luigi Leonardi Reviewed-by: Stefano Garzarella --- backends/igvm.c | 2 +- include/system/igvm-internal.h | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/backends/igvm.c b/backends/igvm.c index 9a2bafc0ca..ec7bee428b 100644 --- a/backends/igvm.c +++ b/backends/igvm.c @@ -85,7 +85,7 @@ struct QEMU_PACKED sev_id_authentication { =20 #define IGVM_SEV_ID_BLOCK_VERSION 1 =20 -QIgvmParameterData* +static QIgvmParameterData* qigvm_find_param_entry(QIgvm *igvm, uint32_t parameter_area_index, Error **errp) { diff --git a/include/system/igvm-internal.h b/include/system/igvm-internal.h index 0467eff0ce..b3b64cb584 100644 --- a/include/system/igvm-internal.h +++ b/include/system/igvm-internal.h @@ -77,10 +77,6 @@ struct QIgvm { =20 IgvmHandle qigvm_file_init(char *filename, Error **errp); =20 -QIgvmParameterData* -qigvm_find_param_entry(QIgvm *igvm, uint32_t parameter_area_index, - Error **errp); - uint8_t * qigvm_get_param_data(QIgvm *igvm, const IGVM_VHS_PARAMETER *param, uint32_t *param_size, --=20 2.55.0