diff --git a/SOURCES/udisks-2.10.0-udiskslinuxencrypted_GError.patch b/SOURCES/udisks-2.10.0-udiskslinuxencrypted_GError.patch new file mode 100644 index 0000000..572a187 --- /dev/null +++ b/SOURCES/udisks-2.10.0-udiskslinuxencrypted_GError.patch @@ -0,0 +1,30 @@ +From 486778c778a4ddb24395408c6b267e702e19ae02 Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Sat, 1 Jan 2022 22:01:49 +0100 +Subject: [PATCH] udiskslinuxencrypted: Fix GError ownership + +--- + src/udiskslinuxencrypted.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/udiskslinuxencrypted.c b/src/udiskslinuxencrypted.c +index c3a0821ac..3bc54e695 100644 +--- a/src/udiskslinuxencrypted.c ++++ b/src/udiskslinuxencrypted.c +@@ -1040,7 +1040,7 @@ handle_resize (UDisksEncrypted *encrypted, + object = udisks_daemon_util_dup_object (encrypted, &error); + if (object == NULL) + { +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + +@@ -1066,7 +1066,6 @@ handle_resize (UDisksEncrypted *encrypted, + if (!udisks_daemon_util_get_caller_uid_sync (daemon, invocation, NULL /* GCancellable */, &caller_uid, &error)) + { + g_dbus_method_invocation_return_gerror (invocation, error); +- g_clear_error (&error); + goto out; + } + diff --git a/SOURCES/udisks-2.10.0-udiskslinuxfilesystem_GError.patch b/SOURCES/udisks-2.10.0-udiskslinuxfilesystem_GError.patch new file mode 100644 index 0000000..dae7068 --- /dev/null +++ b/SOURCES/udisks-2.10.0-udiskslinuxfilesystem_GError.patch @@ -0,0 +1,49 @@ +From 223256777f6e269b8501d95a64c4c6095a7a8a3e Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Sat, 1 Jan 2022 22:02:17 +0100 +Subject: [PATCH] udiskslinuxfilesystem: Fix GError ownership + +--- + src/udiskslinuxfilesystem.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/udiskslinuxfilesystem.c b/src/udiskslinuxfilesystem.c +index f7c99757a..a8390a044 100644 +--- a/src/udiskslinuxfilesystem.c ++++ b/src/udiskslinuxfilesystem.c +@@ -1739,7 +1739,7 @@ handle_resize (UDisksFilesystem *filesystem, + object = udisks_daemon_util_dup_object (filesystem, &error); + if (object == NULL) + { +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + +@@ -1921,7 +1921,7 @@ handle_repair (UDisksFilesystem *filesystem, + object = udisks_daemon_util_dup_object (filesystem, &error); + if (object == NULL) + { +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + +@@ -2089,7 +2089,7 @@ handle_check (UDisksFilesystem *filesystem, + object = udisks_daemon_util_dup_object (filesystem, &error); + if (object == NULL) + { +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + +@@ -2257,7 +2257,7 @@ handle_take_ownership (UDisksFilesystem *filesystem, + object = udisks_daemon_util_dup_object (filesystem, &error); + if (object == NULL) + { +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + diff --git a/SOURCES/udisks-2.10.0-udiskslinuxpartition_GError.patch b/SOURCES/udisks-2.10.0-udiskslinuxpartition_GError.patch new file mode 100644 index 0000000..d2bdec4 --- /dev/null +++ b/SOURCES/udisks-2.10.0-udiskslinuxpartition_GError.patch @@ -0,0 +1,70 @@ +From 7c9933c0f80faaabbed607983fdf77f8c4562df6 Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Sat, 1 Jan 2022 20:11:57 +0100 +Subject: [PATCH] udiskslinuxpartition: Fix GError ownership + +--- + src/udiskslinuxpartition.c | 15 ++++++--------- + 1 file changed, 6 insertions(+), 9 deletions(-) + +diff --git a/src/udiskslinuxpartition.c b/src/udiskslinuxpartition.c +index 5461b3903..3d970768d 100644 +--- a/src/udiskslinuxpartition.c ++++ b/src/udiskslinuxpartition.c +@@ -135,8 +135,7 @@ check_authorization (UDisksPartition *partition, + caller_uid, + &error)) + { +- g_dbus_method_invocation_return_gerror (invocation, error); +- g_clear_error (&error); ++ g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + +@@ -351,7 +350,7 @@ handle_set_flags (UDisksPartition *partition, + object = udisks_daemon_util_dup_object (partition, &error); + if (object == NULL) + { +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + +@@ -499,7 +498,7 @@ handle_set_name (UDisksPartition *partition, + object = udisks_daemon_util_dup_object (partition, &error); + if (object == NULL) + { +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + +@@ -873,7 +872,7 @@ handle_resize (UDisksPartition *partition, + object = udisks_daemon_util_dup_object (partition, &error); + if (object == NULL) + { +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + +@@ -994,7 +993,7 @@ handle_delete (UDisksPartition *partition, + object = udisks_daemon_util_dup_object (partition, &error); + if (object == NULL) + { +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + +@@ -1012,9 +1011,7 @@ handle_delete (UDisksPartition *partition, + if (!udisks_linux_block_teardown (block, invocation, options, &error)) + { + if (invocation != NULL) +- g_dbus_method_invocation_take_error (invocation, error); +- else +- g_clear_error (&error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + } diff --git a/SOURCES/udisks-2.10.0-udiskslinuxpartitiontable_GError.patch b/SOURCES/udisks-2.10.0-udiskslinuxpartitiontable_GError.patch new file mode 100644 index 0000000..d97851e --- /dev/null +++ b/SOURCES/udisks-2.10.0-udiskslinuxpartitiontable_GError.patch @@ -0,0 +1,73 @@ +From f486a9fa22c2f9785a4a8fc58eb3be7b0cf934ce Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Sat, 1 Jan 2022 19:59:27 +0100 +Subject: [PATCH] udiskslinuxpartitiontable: Fix GError ownership + +--- + src/udiskslinuxpartitiontable.c | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/src/udiskslinuxpartitiontable.c b/src/udiskslinuxpartitiontable.c +index b4c301095..14a54c9c7 100644 +--- a/src/udiskslinuxpartitiontable.c ++++ b/src/udiskslinuxpartitiontable.c +@@ -277,7 +277,7 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta + object = udisks_daemon_util_dup_object (table, &error); + if (object == NULL) + { +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + goto out; + } + +@@ -293,7 +293,6 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta + goto out; + } + +- error = NULL; + if (!udisks_daemon_util_get_caller_uid_sync (daemon, + invocation, + NULL /* GCancellable */, +@@ -301,7 +300,6 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta + &error)) + { + g_dbus_method_invocation_return_gerror (invocation, error); +- g_clear_error (&error); + goto out; + } + +@@ -464,7 +462,7 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta + if (!bd_part_set_part_name (device_name, part_spec->path, name, &error)) + { + g_prefix_error (&error, "Error setting name for newly created partition: "); +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + udisks_simple_job_complete (UDISKS_SIMPLE_JOB (job), FALSE, error->message); + goto out; + } +@@ -483,7 +481,7 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta + if (!ret) + { + g_prefix_error (&error, "Error setting type for newly created partition: "); +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + udisks_simple_job_complete (UDISKS_SIMPLE_JOB (job), FALSE, error->message); + goto out; + } +@@ -520,7 +518,6 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta + /* sit and wait for the partition to show up */ + g_warn_if_fail (wait_data->pos_to_wait_for > 0); + wait_data->partition_table_object = object; +- error = NULL; + partition_object = udisks_daemon_wait_for_object_sync (daemon, + wait_for_partition, + wait_data, +@@ -530,7 +527,7 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta + if (partition_object == NULL) + { + g_prefix_error (&error, "Error waiting for partition to appear: "); +- g_dbus_method_invocation_take_error (invocation, error); ++ g_dbus_method_invocation_return_gerror (invocation, error); + udisks_simple_job_complete (UDISKS_SIMPLE_JOB (job), FALSE, error->message); + goto out; + } diff --git a/SOURCES/udisks-2.10.0-vdo_test_writeAmplificationRatio.patch b/SOURCES/udisks-2.10.0-vdo_test_writeAmplificationRatio.patch new file mode 100644 index 0000000..e232e77 --- /dev/null +++ b/SOURCES/udisks-2.10.0-vdo_test_writeAmplificationRatio.patch @@ -0,0 +1,25 @@ +From 0edd6f5579c964323d86897aff9476c20d7901ba Mon Sep 17 00:00:00 2001 +From: Vojtech Trefny +Date: Mon, 22 Nov 2021 14:23:08 +0100 +Subject: [PATCH] tests: Do not check that writeAmplificationRatio is bigger + than 0 + +Apparently the bios_in_write value is now 0 for newly created VDO +pools and because we use it for the writeAmplificationRatio +calculation we get zero too. +--- + src/tests/dbus-tests/test_20_LVM.py | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/tests/dbus-tests/test_20_LVM.py b/src/tests/dbus-tests/test_20_LVM.py +index 7fbff0434..fde7c3f3f 100644 +--- a/src/tests/dbus-tests/test_20_LVM.py ++++ b/src/tests/dbus-tests/test_20_LVM.py +@@ -508,7 +508,6 @@ def test_create(self): + # get statistics and do some simple sanity check + stats = lv.GetStatistics(self.no_options, dbus_interface=self.iface_prefix + '.VDOVolume') + self.assertIn("writeAmplificationRatio", stats.keys()) +- self.assertGreater(float(stats["writeAmplificationRatio"]), 0) + + def test_enable_disable_compression_deduplication(self): + vgname = 'udisks_test_vdo_vg' diff --git a/SOURCES/udisks-2.9.4-ext-mount-options.patch b/SOURCES/udisks-2.9.4-ext-mount-options.patch new file mode 100644 index 0000000..475eaec --- /dev/null +++ b/SOURCES/udisks-2.9.4-ext-mount-options.patch @@ -0,0 +1,54 @@ +From 2d5d2b7570b0f44c14b34b5dc831f174205c10f2 Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Wed, 15 Sep 2021 14:34:49 +0200 +Subject: [PATCH] mount options: Always use errors=remount-ro for ext + filesystems + +Default mount options are focused primarily on data safety, mounting +damaged ext2/3/4 filesystem as readonly would indicate something's wrong. +--- + data/builtin_mount_options.conf | 9 +++++++++ + src/tests/dbus-tests/test_80_filesystem.py | 6 ++++++ + 2 files changed, 15 insertions(+) + +diff --git a/data/builtin_mount_options.conf b/data/builtin_mount_options.conf +index 37715cfa4..e0bd0ee1f 100644 +--- a/data/builtin_mount_options.conf ++++ b/data/builtin_mount_options.conf +@@ -27,3 +27,12 @@ f2fs_allow=discard,nodiscard,compress_algorithm,compress_log_size,compress_exten + btrfs_allow=compress,compress-force,datacow,nodatacow,datasum,nodatasum,degraded,device,discard,nodiscard,subvol,subvolid,space_cache + + f2fs_allow=discard,nodiscard,compress_algorithm,compress_log_size,compress_extension,alloc_mode ++ ++ext2_defaults=errors=remount-ro ++ext2_allow=errors=remount-ro ++ ++ext3_defaults=errors=remount-ro ++ext3_allow=errors=remount-ro ++ ++ext4_defaults=errors=remount-ro ++ext4_allow=errors=remount-ro +diff --git a/src/tests/dbus-tests/test_80_filesystem.py b/src/tests/dbus-tests/test_80_filesystem.py +index 019880f57..2d1933240 100644 +--- a/src/tests/dbus-tests/test_80_filesystem.py ++++ b/src/tests/dbus-tests/test_80_filesystem.py +@@ -321,6 +321,8 @@ def test_mount_auto(self): + _ret, out = self.run_command('mount | grep %s' % block_fs_dev) + self.assertIn(mnt_path, out) + self.assertIn('ro', out) ++ if self._fs_name.startswith('ext'): ++ self.assertIn('errors=remount-ro', out) + + # dbus mountpoint + dbus_mounts = self.get_property(block_fs, '.Filesystem', 'MountPoints') +@@ -478,6 +480,10 @@ def test_custom_option(self, should_fail, dbus_option, should_be_present, config + if self._fs_name == "udf": + test_custom_option(self, False, None, False, "[defaults]\ndefaults=\nallow=exec,noexec,nodev,nosuid,atime,noatime,nodiratime,ro,rw,sync,dirsync,noload,uid=ignore,uid=forget\n") + test_custom_option(self, True, "uid=notallowed", True, "[defaults]\nallow=exec,noexec,nodev,nosuid,atime,noatime,nodiratime,ro,rw,sync,dirsync,noload,uid=ignore\n") ++ if self._fs_name.startswith("ext"): ++ test_custom_option(self, False, "errors=remount-ro", True, "", match_mount_option="errors=remount-ro") ++ test_custom_option(self, True, "errors=panic", False, "") ++ test_custom_option(self, True, "errors=continue", False, "") + + # udev rules overrides + test_readonly(self, False, "", udev_rules_content = { "UDISKS_MOUNT_OPTIONS_DEFAULTS": "rw" }) diff --git a/SPECS/udisks2.spec b/SPECS/udisks2.spec index bb6d6fd..acae95f 100644 --- a/SPECS/udisks2.spec +++ b/SPECS/udisks2.spec @@ -56,7 +56,7 @@ Name: udisks2 Summary: Disk Manager Version: 2.9.0 -Release: 7%{?dist} +Release: 9%{?dist} License: GPLv2+ Group: System Environment/Libraries URL: https://github.com/storaged-project/udisks @@ -73,9 +73,19 @@ Patch13: udisks-2.9.1-iscsi-Always-flush-interface-property-changes.patch Patch14: udisks-2.9.1-zram-Always-flush-interface-property-changes.patch Patch15: udisks-2.9.2-udisksdaemonutil-Refactor-udisks_daemon_util_trigger.patch Patch16: udisks-2.9.2-udiskslinuxmanager-Trigger-uevent-after-loop-device-setup.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=2004422 +Patch17: udisks-2.9.4-ext-mount-options.patch Patch20: udisks-2.10.0-tests-drive_ata-apm.patch Patch21: udisks-2.10.0-tests-no-dev_disk-by-path.patch Patch22: tests-disable-zram.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=2023880 +# https://bugzilla.redhat.com/show_bug.cgi?id=2025483 +Patch23: udisks-2.10.0-vdo_test_writeAmplificationRatio.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1999149 +Patch24: udisks-2.10.0-udiskslinuxencrypted_GError.patch +Patch25: udisks-2.10.0-udiskslinuxpartition_GError.patch +Patch26: udisks-2.10.0-udiskslinuxpartitiontable_GError.patch +Patch27: udisks-2.10.0-udiskslinuxfilesystem_GError.patch BuildRequires: glib2-devel >= %{glib2_version} BuildRequires: gobject-introspection-devel >= %{gobject_introspection_version} @@ -290,9 +300,15 @@ This package contains module for VDO management. %patch14 -p1 %patch15 -p1 %patch16 -p1 +%patch17 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 sed -i udisks/udisks2.conf.in -e "s/encryption=luks1/encryption=%{default_luks_encryption}/" %build @@ -485,6 +501,13 @@ fi %endif %changelog +* Tue Feb 01 2022 Tomas Bzatek - 2.9.0-9 +- Fix LVM-VDO statistics tests (#2023880,#2025483) +- Fix GError ownership (#1999149) + +* Mon Oct 25 2021 Tomas Bzatek - 2.9.0-8 +- CVE-2021-3802: Harden the default mount options for ext filesystems (#2004422) + * Fri Apr 23 2021 Tomas Bzatek - 2.9.0-7 - Do not build udisks2-zram (#1923078) - Fix Drive.ATA test failures (#1926827)