Blame SOURCES/0004-options-Ignore-errors-from-guestfs_luks_uuid.patch

7ed5e3
From 132c355d3ba10b6ec303cbc059d6732056474695 Mon Sep 17 00:00:00 2001
7ed5e3
From: "Richard W.M. Jones" <rjones@redhat.com>
7ed5e3
Date: Tue, 6 Oct 2020 15:04:27 +0100
7ed5e3
Subject: [PATCH 4/4] options: Ignore errors from guestfs_luks_uuid.
7ed5e3
7ed5e3
For BitLocker disks cryptsetup does not (yet? ever?) support reading
7ed5e3
UUIDs and this function will fail.  Skip reading the UUID in this
7ed5e3
case.
7ed5e3
7ed5e3
Updates commit bb4a2dc17a78b53437896d4215ae82df8e11b788.
7ed5e3
---
7ed5e3
 options/decrypt.c | 11 ++++++++++-
7ed5e3
 1 file changed, 10 insertions(+), 1 deletion(-)
7ed5e3
7ed5e3
diff --git a/options/decrypt.c b/options/decrypt.c
7ed5e3
index 8eb24bc..434b7d5 100644
7ed5e3
--- a/common/options/decrypt.c
7ed5e3
+++ b/common/options/decrypt.c
7ed5e3
@@ -25,6 +25,7 @@
7ed5e3
 
7ed5e3
 #include <stdio.h>
7ed5e3
 #include <stdlib.h>
7ed5e3
+#include <stdbool.h>
7ed5e3
 #include <string.h>
7ed5e3
 #include <libintl.h>
7ed5e3
 #include <error.h>
7ed5e3
@@ -82,11 +83,19 @@ inspect_do_decrypt (guestfs_h *g, struct key_store *ks)
7ed5e3
     CLEANUP_FREE char *type = guestfs_vfs_type (g, partitions[i]);
7ed5e3
     if (type &&
7ed5e3
         (STREQ (type, "crypto_LUKS") || STREQ (type, "BitLocker"))) {
7ed5e3
+      bool is_bitlocker = STREQ (type, "BitLocker");
7ed5e3
       char mapname[32];
7ed5e3
       make_mapname (partitions[i], mapname, sizeof mapname);
7ed5e3
 
7ed5e3
 #ifdef GUESTFS_HAVE_LUKS_UUID
7ed5e3
-      CLEANUP_FREE char *uuid = guestfs_luks_uuid (g, partitions[i]);
7ed5e3
+      CLEANUP_FREE char *uuid = NULL;
7ed5e3
+
7ed5e3
+      /* This fails for Windows BitLocker disks because cryptsetup
7ed5e3
+       * luksUUID cannot read a UUID (unclear if this is a limitation
7ed5e3
+       * of the format or cryptsetup).
7ed5e3
+       */
7ed5e3
+      if (!is_bitlocker)
7ed5e3
+        uuid = guestfs_luks_uuid (g, partitions[i]);
7ed5e3
 #else
7ed5e3
       const char *uuid = NULL;
7ed5e3
 #endif
7ed5e3
-- 
7ed5e3
2.18.4
7ed5e3