From b725361adf03b24eebf70cf81fa872c00f31b9b0 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Wed, 8 Jul 2020 15:15:03 +0100 Subject: [PATCH] libmount (verity): let crypt_deactivate_by_name handle its own data structure It's not necessary to initialize a crypt_device, the function will do it on its own if NULL is passed. Removes a few extra library calls. Signed-off-by: Luca Boccassi --- libmount/src/context_veritydev.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/libmount/src/context_veritydev.c b/libmount/src/context_veritydev.c index af089e2a87..e795c071c9 100644 --- a/libmount/src/context_veritydev.c +++ b/libmount/src/context_veritydev.c @@ -419,7 +419,6 @@ done: int mnt_context_deferred_delete_veritydev(struct libmnt_context *cxt) { const char *src; - struct crypt_device *crypt_dev = NULL; /* If mounting failed delete immediately, otherwise setup auto cleanup for user umount */ uint32_t flags = mnt_context_get_status(cxt) ? CRYPT_DEACTIVATE_DEFERRED : 0; #ifdef CRYPTSETUP_VIA_DLOPEN @@ -431,15 +430,11 @@ int mnt_context_deferred_delete_veritydev(struct libmnt_context *cxt) #endif void (*sym_crypt_set_debug_level)(int) = NULL; void (*sym_crypt_set_log_callback)(struct crypt_device *, void (*log)(int, const char *, void *), void *) = NULL; - int (*sym_crypt_init_by_name)(struct crypt_device **, const char *) = NULL; int (*sym_crypt_deactivate_by_name)(struct crypt_device *, const char *, uint32_t) = NULL; - void (*sym_crypt_free)(struct crypt_device *) = NULL; #else void (*sym_crypt_set_debug_level)(int) = &crypt_set_debug_level; void (*sym_crypt_set_log_callback)(struct crypt_device *, void (*log)(int, const char *, void *), void *) = &crypt_set_log_callback; - int (*sym_crypt_init_by_name)(struct crypt_device **, const char *) = &crypt_init_by_name; int (*sym_crypt_deactivate_by_name)(struct crypt_device *, const char *, uint32_t) = &crypt_deactivate_by_name; - void (*sym_crypt_free)(struct crypt_device *) = &crypt_free; #endif int rc = 0; @@ -467,25 +462,17 @@ int mnt_context_deferred_delete_veritydev(struct libmnt_context *cxt) *(void **)(&sym_crypt_set_debug_level) = get_symbol(cxt, dl, "crypt_set_debug_level", &rc); if (!rc) *(void **)(&sym_crypt_set_log_callback) = get_symbol(cxt, dl, "crypt_set_log_callback", &rc); - if (!rc) - *(void **)(&sym_crypt_init_by_name) = get_symbol(cxt, dl, "crypt_init_by_name", &rc); if (!rc) *(void **)(&sym_crypt_deactivate_by_name) = get_symbol(cxt, dl, "crypt_deactivate_by_name", &rc); - if (!rc) - *(void **)(&sym_crypt_free) = get_symbol(cxt, dl, "crypt_free", &rc); #endif if (!rc) { if (mnt_context_is_verbose(cxt)) (*sym_crypt_set_debug_level)(CRYPT_DEBUG_ALL); (*sym_crypt_set_log_callback)(NULL, libcryptsetup_log, cxt); - rc = (*sym_crypt_init_by_name)(&crypt_dev, src); - if (!rc) { - rc = (*sym_crypt_deactivate_by_name)(crypt_dev, src, flags); - if (!rc) - cxt->flags &= ~MNT_FL_VERITYDEV_READY; - } - (*sym_crypt_free)(crypt_dev); + rc = (*sym_crypt_deactivate_by_name)(NULL, src, flags); + if (!rc) + cxt->flags &= ~MNT_FL_VERITYDEV_READY; } #ifdef CRYPTSETUP_VIA_DLOPEN -- 2.47.2