File sleuthkit-4.12.0_add-lvm-support.patch of Package sleuthkit

diff -uN sleuthkit-4.12.0/tsk/pool/tsk_lvm.hpp ../../src/sleuthkit/4.12.0/tsk/pool/tsk_lvm.hpp
--- sleuthkit-4.12.0/tsk/pool/tsk_lvm.hpp	1970-01-01 01:00:00.000000000 +0100
+++ ../../src/sleuthkit/4.12.0/tsk/pool/tsk_lvm.hpp	2023-03-31 16:51:59.863371629 +0100
@@ -0,0 +1,51 @@
+/*
+ * The Sleuth Kit - Add on for Linux LVM support
+ *
+ * Copyright (c) 2022 Joachim Metz <joachim.metz@gmail.com>
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+#pragma once
+
+#include "tsk/base/tsk_base_i.h"
+
+#if HAVE_LIBVSLVM
+
+#include "tsk_pool.hpp"
+
+#include <libbfio.h>
+#include <libvslvm.h>
+
+class LVMPool;
+
+class LVMPool : public TSKPool {
+ protected:
+  TSK_IMG_INFO *_img;
+  // Start of the pool data within the image
+  TSK_OFF_T _offset;
+  libbfio_pool_t *_file_io_pool = NULL;
+  libvslvm_handle_t *_lvm_handle = NULL;
+  libvslvm_volume_group_t *_lvm_volume_group = NULL;
+
+ public:
+  LVMPool(std::vector<img_t> &&imgs);
+
+  // Moveable
+  LVMPool(LVMPool &&) = default;
+  LVMPool &operator=(LVMPool &&) = default;
+
+  // Not copyable because of TSK_IMG_INFO pointer
+  LVMPool(const LVMPool &) = delete;
+  LVMPool &operator=(const LVMPool &) = delete;
+
+  ~LVMPool();
+
+  std::string identifier;
+
+  ssize_t read(uint64_t address, char *buf, size_t buf_size) const
+      noexcept final;
+};
+
+#endif /* HAVE_LIBVSLVM */
+
openSUSE Build Service is sponsored by