From cfabfb8caaf2facfde2c93a32bbc137643454f34 Mon Sep 17 00:00:00 2001 From: Aidan Garske Date: Mon, 24 Aug 2026 11:12:22 -0700 Subject: [PATCH] Avoid blocking during fwTPM client cleanup --- hal/tpm_io_fwtpm.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hal/tpm_io_fwtpm.c b/hal/tpm_io_fwtpm.c index 31b7d7fc..f76cfa34 100644 --- a/hal/tpm_io_fwtpm.c +++ b/hal/tpm_io_fwtpm.c @@ -65,6 +65,11 @@ static int FWTPM_TIS_ClientLock(int fd) return rc; } +static int FWTPM_TIS_ClientTryLock(int fd) +{ + return flock(fd, LOCK_EX | LOCK_NB); +} + static void FWTPM_TIS_ClientUnlock(int fd) { int rc; @@ -221,7 +226,7 @@ void FWTPM_TIS_ClientDisconnect(FWTPM_TIS_CLIENT_CTX* client) } if (client->shm != NULL) { if (client->shmFd >= 0 && - FWTPM_TIS_ClientLock(client->shmFd) == 0) { + FWTPM_TIS_ClientTryLock(client->shmFd) == 0) { TPM2_ForceZero(client->shm->reg_data, sizeof(client->shm->reg_data)); FWTPM_TIS_ClientUnlock(client->shmFd);