From bb69299b79bfebdf0d8bc09b1f3283071bee9179 Mon Sep 17 00:00:00 2001 From: Vojtech Trefny Date: Tue, 14 May 2024 09:30:15 +0200 Subject: [PATCH] Backport multiple fixes to RHEL 10 Beta - Fix creating MD RAID arrays without specifying bitmap localtion Resolves: RHEL-31379 - crypto: Fix double free in bd_crypto_luks_remove_key Resolves: RHEL-31489 - tests: Fix running tests without ntfsprogs Resolves: RHEL-32875 --- 0001-misc-RHEL-10-beta-backport.patch | 107 ++++++++++++++++++++++++++ libblockdev.spec | 12 ++- 2 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 0001-misc-RHEL-10-beta-backport.patch diff --git a/0001-misc-RHEL-10-beta-backport.patch b/0001-misc-RHEL-10-beta-backport.patch new file mode 100644 index 0000000..cf16980 --- /dev/null +++ b/0001-misc-RHEL-10-beta-backport.patch @@ -0,0 +1,107 @@ +From 9ca6684291e8a30cce2158285078664f8c771638 Mon Sep 17 00:00:00 2001 +From: guazhang +Date: Wed, 27 Mar 2024 11:53:21 +0800 +Subject: [PATCH 1/3] fixed md_create issue #1013 + +--- + src/python/gi/overrides/BlockDev.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/python/gi/overrides/BlockDev.py b/src/python/gi/overrides/BlockDev.py +index d830e485..25852f66 100644 +--- a/src/python/gi/overrides/BlockDev.py ++++ b/src/python/gi/overrides/BlockDev.py +@@ -1018,7 +1018,7 @@ __all__.append("md_get_superblock_size") + + _md_create = BlockDev.md_create + @override(BlockDev.md_create) +-def md_create(device_name, level, disks, spares=0, version=None, bitmap=False, chunk_size=0, extra=None, **kwargs): ++def md_create(device_name, level, disks, spares=0, version=None, bitmap=None, chunk_size=0, extra=None, **kwargs): + extra = _get_extra(extra, kwargs) + return _md_create(device_name, level, disks, spares, version, bitmap, chunk_size, extra) + __all__.append("md_create") +-- +2.45.0 + + +From 829cea63351c8d5264573eb3d8953cd0069d2566 Mon Sep 17 00:00:00 2001 +From: Vojtech Trefny +Date: Wed, 3 Apr 2024 15:58:04 +0200 +Subject: [PATCH 2/3] crypto: Fix double free in bd_crypto_luks_remove_key + +--- + src/plugins/crypto.c | 1 - + tests/crypto_test.py | 6 ++++++ + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c +index 5120ec57..f764593f 100644 +--- a/src/plugins/crypto.c ++++ b/src/plugins/crypto.c +@@ -1480,7 +1480,6 @@ gboolean bd_crypto_luks_remove_key (const gchar *device, BDCryptoKeyslotContext + return FALSE; + } + +- crypt_safe_free (key_buf); + crypt_free (cd); + bd_utils_report_finished (progress_id, "Completed"); + return TRUE; +diff --git a/tests/crypto_test.py b/tests/crypto_test.py +index 6fe15a07..54ec0176 100644 +--- a/tests/crypto_test.py ++++ b/tests/crypto_test.py +@@ -524,6 +524,9 @@ class CryptoTestRemoveKey(CryptoTestCase): + succ = BlockDev.crypto_luks_add_key(self.loop_dev, ctx, nctx2) + self.assertTrue(succ) + ++ nctx3 = BlockDev.CryptoKeyslotContext(keyfile=self.keyfile) ++ succ = BlockDev.crypto_luks_add_key(self.loop_dev, ctx, nctx3) ++ + with self.assertRaises(GLib.GError): + wctx = BlockDev.CryptoKeyslotContext(passphrase="wrong-passphrase") + BlockDev.crypto_luks_remove_key(self.loop_dev, wctx) +@@ -534,6 +537,9 @@ class CryptoTestRemoveKey(CryptoTestCase): + succ = BlockDev.crypto_luks_remove_key(self.loop_dev, nctx2) + self.assertTrue(succ) + ++ succ = BlockDev.crypto_luks_remove_key(self.loop_dev, nctx3) ++ self.assertTrue(succ) ++ + @tag_test(TestTags.SLOW) + def test_luks_remove_key(self): + self._remove_key(self._luks_format) +-- +2.45.0 + + +From c50d43b4d8e9d10b410265c72d2bbf5372eb41e6 Mon Sep 17 00:00:00 2001 +From: Vojtech Trefny +Date: Tue, 16 Apr 2024 12:02:27 +0200 +Subject: [PATCH 3/3] tests: Fix running tests without ntfsprogs + +--- + tests/fs_tests/generic_test.py | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/tests/fs_tests/generic_test.py b/tests/fs_tests/generic_test.py +index fb890229..df25e25a 100644 +--- a/tests/fs_tests/generic_test.py ++++ b/tests/fs_tests/generic_test.py +@@ -342,8 +342,12 @@ class CanResizeRepairCheckLabel(GenericNoDevTestCase): + self.assertEqual(util, "resize2fs") + + avail, util = BlockDev.fs_can_get_min_size("ntfs") +- self.assertTrue(avail) +- self.assertEqual(util, None) ++ if self.ntfs_avail: ++ self.assertTrue(avail) ++ self.assertEqual(util, None) ++ else: ++ self.assertFalse(avail) ++ self.assertEqual(util, "ntfsresize") + + with self.assertRaises(GLib.GError): + BlockDev.fs_can_get_min_size("xfs") +-- +2.45.0 + diff --git a/libblockdev.spec b/libblockdev.spec index 9d1af51..7723949 100644 --- a/libblockdev.spec +++ b/libblockdev.spec @@ -78,12 +78,14 @@ Name: libblockdev Version: 3.1.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A library for low-level manipulation with block devices License: LGPL-2.1-or-later URL: https://github.com/storaged-project/libblockdev Source0: https://github.com/storaged-project/libblockdev/releases/download/%{version}-%{release}/%{name}-%{version}.tar.gz +Patch0: 0001-misc-RHEL-10-beta-backport.patch + BuildRequires: make BuildRequires: glib2-devel %if %{with_gi} @@ -851,6 +853,14 @@ find %{buildroot} -type f -name "*.la" | xargs %{__rm} %files plugins-all %changelog +* Tue May 14 2024 Vojtech Trefny - 3.1.0-3 +- Fix creating MD RAID arrays without specifying bitmap localtion + Resolves: RHEL-31379 +- crypto: Fix double free in bd_crypto_luks_remove_key + Resolves: RHEL-31489 +- tests: Fix running tests without ntfsprogs + Resolves: RHEL-32875 + * Thu Jan 25 2024 Fedora Release Engineering - 3.1.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild