diff --git a/hw/tpm/tpm_tis_sysbus.c b/hw/tpm/tpm_tis_sysbus.c index f9cd1c8b5c..16bb17874b 100644 --- a/hw/tpm/tpm_tis_sysbus.c +++ b/hw/tpm/tpm_tis_sysbus.c @@ -148,11 +148,20 @@ static void tpm_tis_sysbus_class_init(ObjectClass *klass, const void *data) set_bit(DEVICE_CATEGORY_MISC, dc->categories); } +static void tpm_tis_sysbus_finalize(Object *obj) +{ + TPMStateSysBus *sbdev = TPM_TIS_SYSBUS(obj); + TPMState *s = &sbdev->state; + + qemu_vfree(s->ppi.buf); +} + static const TypeInfo tpm_tis_sysbus_info = { .name = TYPE_TPM_TIS_SYSBUS, .parent = TYPE_DYNAMIC_SYS_BUS_DEVICE, .instance_size = sizeof(TPMStateSysBus), .instance_init = tpm_tis_sysbus_initfn, + .instance_finalize = tpm_tis_sysbus_finalize, .class_init = tpm_tis_sysbus_class_init, .interfaces = (const InterfaceInfo[]) { { TYPE_TPM_IF },