@samitouri / QOSamiQemu / commits / f644d26807

hw/tpm: free PPI buffer on finalization

The PPI buffer is allocated with qemu_memalign() in instance_init but never freed when the device is destroyed. Fixes: 46cd2c1050f0 ("hw/tpm: add PPI support to tpm-tis-device for ARM64 virt") Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>

Marc-André Lureau committed Apr 27, 2026 at 16:08 UTC f644d268079849e6677089b90d0b45ab670b72c6
1 file changed +9
hw/tpm/tpm_tis_sysbus.c
+9
@@ -148,11 +148,20 @@ static void tpm_tis_sysbus_class_init(ObjectClass *klass, const void *data)
148 set_bit(DEVICE_CATEGORY_MISC, dc->categories);
149 }
150
151 +static void tpm_tis_sysbus_finalize(Object *obj)
152 +{
153 + TPMStateSysBus *sbdev = TPM_TIS_SYSBUS(obj);
154 + TPMState *s = &sbdev->state;
155 +
156 + qemu_vfree(s->ppi.buf);
157 +}
158 +
159 static const TypeInfo tpm_tis_sysbus_info = {
160 .name = TYPE_TPM_TIS_SYSBUS,
161 .parent = TYPE_DYNAMIC_SYS_BUS_DEVICE,
162 .instance_size = sizeof(TPMStateSysBus),
163 .instance_init = tpm_tis_sysbus_initfn,
164 + .instance_finalize = tpm_tis_sysbus_finalize,
165 .class_init = tpm_tis_sysbus_class_init,
166 .interfaces = (const InterfaceInfo[]) {
167 { TYPE_TPM_IF },