From d32f7a8e9bca4170be6a3425bc5e6ce20612c636 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 22 Jun 2021 09:25:12 +0200 Subject: [PATCH] shared/tpm2-util: simplify and convert to the new helper The function would return 0 or 3. I don't think the return code was used for anything, so let's avoid the explicit calculation and return 0 or 1. --- src/shared/tpm2-util.c | 104 ++++++++++++----------------------------- 1 file changed, 29 insertions(+), 75 deletions(-) diff --git a/src/shared/tpm2-util.c b/src/shared/tpm2-util.c index da78e1f406..df6d2eef58 100644 --- a/src/shared/tpm2-util.c +++ b/src/shared/tpm2-util.c @@ -42,84 +42,38 @@ TSS2_RC (*sym_Tss2_MU_TPM2B_PUBLIC_Marshal)(TPM2B_PUBLIC const *src, uint8_t buf TSS2_RC (*sym_Tss2_MU_TPM2B_PUBLIC_Unmarshal)(uint8_t const buffer[], size_t buffer_size, size_t *offset, TPM2B_PUBLIC *dest) = NULL; int dlopen_tpm2(void) { - int r, k = 0; - - if (!libtss2_esys_dl) { - _cleanup_(dlclosep) void *dl = NULL; - - dl = dlopen("libtss2-esys.so.0", RTLD_LAZY); - if (!dl) - return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), - "TPM2 support is not installed: %s", dlerror()); - - r = dlsym_many_or_warn( - dl, - LOG_DEBUG, - DLSYM_ARG(Esys_Create), - DLSYM_ARG(Esys_CreatePrimary), - DLSYM_ARG(Esys_Finalize), - DLSYM_ARG(Esys_FlushContext), - DLSYM_ARG(Esys_Free), - DLSYM_ARG(Esys_GetRandom), - DLSYM_ARG(Esys_Initialize), - DLSYM_ARG(Esys_Load), - DLSYM_ARG(Esys_PolicyGetDigest), - DLSYM_ARG(Esys_PolicyPCR), - DLSYM_ARG(Esys_StartAuthSession), - DLSYM_ARG(Esys_Startup), - DLSYM_ARG(Esys_Unseal), - NULL); - if (r < 0) - return r; - - libtss2_esys_dl = TAKE_PTR(dl); - k++; - } - - if (!libtss2_rc_dl) { - _cleanup_(dlclosep) void *dl = NULL; - - dl = dlopen("libtss2-rc.so.0", RTLD_LAZY); - if (!dl) - return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), - "TPM2 support is not installed: %s", dlerror()); - - r = dlsym_many_or_warn( - dl, - LOG_DEBUG, - DLSYM_ARG(Tss2_RC_Decode), - NULL); - if (r < 0) - return r; - - libtss2_rc_dl = TAKE_PTR(dl); - k++; - } - - if (!libtss2_mu_dl) { - _cleanup_(dlclosep) void *dl = NULL; + int r; - dl = dlopen("libtss2-mu.so.0", RTLD_LAZY); - if (!dl) - return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), - "TPM2 support is not installed: %s", dlerror()); - - r = dlsym_many_or_warn( - dl, - LOG_DEBUG, - DLSYM_ARG(Tss2_MU_TPM2B_PRIVATE_Marshal), - DLSYM_ARG(Tss2_MU_TPM2B_PRIVATE_Unmarshal), - DLSYM_ARG(Tss2_MU_TPM2B_PUBLIC_Marshal), - DLSYM_ARG(Tss2_MU_TPM2B_PUBLIC_Unmarshal), - NULL); - if (r < 0) - return r; + r = dlopen_many_sym_or_warn( + &libtss2_esys_dl, "libtss2-esys.so.0", LOG_DEBUG, + DLSYM_ARG(Esys_Create), + DLSYM_ARG(Esys_CreatePrimary), + DLSYM_ARG(Esys_Finalize), + DLSYM_ARG(Esys_FlushContext), + DLSYM_ARG(Esys_Free), + DLSYM_ARG(Esys_GetRandom), + DLSYM_ARG(Esys_Initialize), + DLSYM_ARG(Esys_Load), + DLSYM_ARG(Esys_PolicyGetDigest), + DLSYM_ARG(Esys_PolicyPCR), + DLSYM_ARG(Esys_StartAuthSession), + DLSYM_ARG(Esys_Startup), + DLSYM_ARG(Esys_Unseal)); + if (r < 0) + return r; - libtss2_mu_dl = TAKE_PTR(dl); - k++; - } + r = dlopen_many_sym_or_warn( + &libtss2_rc_dl, "libtss2-rc.so.0", LOG_DEBUG, + DLSYM_ARG(Tss2_RC_Decode)); + if (r < 0) + return r; - return k; + return dlopen_many_sym_or_warn( + &libtss2_mu_dl, "libtss2-mu.so.0", LOG_DEBUG, + DLSYM_ARG(Tss2_MU_TPM2B_PRIVATE_Marshal), + DLSYM_ARG(Tss2_MU_TPM2B_PRIVATE_Unmarshal), + DLSYM_ARG(Tss2_MU_TPM2B_PUBLIC_Marshal), + DLSYM_ARG(Tss2_MU_TPM2B_PUBLIC_Unmarshal)); } struct tpm2_context { -- 2.25.1