>From 98f0b3565457c08d14e1f9ab2acecea003ebf6e1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 23 Sep 2022 15:18:43 +0100 Subject: [PATCH] options: Don't attempt to scan or open LVs if "lvm2" feature is not available Reported-by: Feng Li --- options/decrypt.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/options/decrypt.c b/options/decrypt.c index 6fc7760e3..e9d7d99e0 100644 --- a/options/decrypt.c +++ b/options/decrypt.c @@ -205,19 +205,22 @@ inspect_do_decrypt (guestfs_h *g, struct key_store *ks) CLEANUP_FREE_STRING_LIST char **partitions = guestfs_list_partitions (g); CLEANUP_FREE_STRING_LIST char **lvs = NULL; bool need_rescan; + const char *lvm2_feature[] = { "lvm2", NULL }; if (partitions == NULL) exit (EXIT_FAILURE); need_rescan = decrypt_mountables (g, (const char * const *)partitions, ks); - if (need_rescan) { - if (guestfs_lvm_scan (g, 1) == -1) + if (guestfs_feature_available (g, (char **) lvm2_feature) > 0) { + if (need_rescan) { + if (guestfs_lvm_scan (g, 1) == -1) + exit (EXIT_FAILURE); + } + + lvs = guestfs_lvs (g); + if (lvs == NULL) exit (EXIT_FAILURE); + decrypt_mountables (g, (const char * const *)lvs, ks); } - - lvs = guestfs_lvs (g); - if (lvs == NULL) - exit (EXIT_FAILURE); - decrypt_mountables (g, (const char * const *)lvs, ks); } -- 2.37.0.rc2