This series of patches fixes various issues in TPM-related code, such as
memory leaks, potential integer underflows, clearing of buffers while they
are in use, and the proper handling of sizes of commands or responses.
Regards,
Stefan
Stefan Berger (10):
tpm_util: Pass TPMVersion to function writing fatal error response
tpm_emulator: Reject TPM responses whose size is too small
tpm_emulator: Reject sending commands smaller than the request header
hw/tpm: tis: Only read from response buffer if rw_offset < len
hw/tpm: tis: Use uint32_t for len to avoid truncating size of command
hw/tpm: crb: Do not clear internal buffers when backend is busy
hw/tpm: crb: Avoid potential integer underflow
hw/tpm: crb: Free ppi.buf in tpm_crb_unrealize
hw/tpm: crb: Consider response_buffer->len of received response
tests: Add tests with commands with bad length
backends/tpm/tpm_emulator.c | 12 ++++--
backends/tpm/tpm_passthrough.c | 2 +-
backends/tpm/tpm_util.c | 12 ++++--
hw/tpm/tpm_crb.c | 23 +++++++---
hw/tpm/tpm_tis_common.c | 8 ++--
include/system/tpm_util.h | 3 +-
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 ++
13 files changed, 196 insertions(+), 16 deletions(-)
--
2.55.0