From 5a5a7e2d253d7ff3be9f0b3f37eee70749f0f479 Mon Sep 17 00:00:00 2001 From: David Garske Date: Fri, 2 May 2025 15:31:06 -0700 Subject: [PATCH] Fix issue with possible handle leak in bench example. Reported in #411. --- examples/bench/bench.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/bench/bench.c b/examples/bench/bench.c index 3d1ac8a..604ae90 100644 --- a/examples/bench/bench.c +++ b/examples/bench/bench.c @@ -147,6 +147,7 @@ static int bench_sym_hash(WOLFTPM2_DEV* dev, const char* desc, int algo, bench_stats_sym_finish(desc, count, inSz, start); exit: + wolfTPM2_UnloadHandle(dev, &hash.handle); return rc; } @@ -185,7 +186,6 @@ static int bench_sym_aes(WOLFTPM2_DEV* dev, WOLFTPM2_KEY* storageKey, bench_stats_sym_finish(desc, count, inOutSz, start); exit: - wolfTPM2_UnloadHandle(dev, &aesKey.handle); return rc; } @@ -489,14 +489,15 @@ int TPM2_Wrapper_BenchArgs(void* userCtx, int argc, char *argv[]) if (rc != 0) goto exit; exit: - if (rc != 0) { printf("Failure 0x%x: %s\n", rc, wolfTPM2_GetRCString(rc)); } + /* Cleanup all handles */ wolfTPM2_UnloadHandle(&dev, &rsaKey.handle); wolfTPM2_UnloadHandle(&dev, &eccKey.handle); wolfTPM2_UnloadHandle(&dev, &tpmSession.handle); + wolfTPM2_UnloadHandle(&dev, &storageKey.handle); wolfTPM2_Cleanup(&dev);