From fd8dc06a59a72e5c05c82c6c42d77fd77f834cd0 Mon Sep 17 00:00:00 2001 From: Ali Mirjamali Date: Wed, 5 Nov 2025 00:23:25 +0330 Subject: [PATCH] Fix check for backing up dom0 to itself During 301e66f1, an essential test to check if target vm is indeed dom0 was not added. resolves: https://github.com/QubesOS/qubes-issues/issues/10127 --- qubes/backup.py | 7 ++++--- qubes/tests/integ/backup.py | 6 +++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/qubes/backup.py b/qubes/backup.py index a337c7721..55eff9f7f 100644 --- a/qubes/backup.py +++ b/qubes/backup.py @@ -455,9 +455,10 @@ def get_files_to_backup(self): home_dir = pwd.getpwnam(local_user).pw_dir # Checking if target is not user home directory in dom0 - if self.target_dir in ["", "~"] or Path( - self.target_dir - ).is_relative_to(home_dir): + if self.target_vm == self.app.domains[0] and ( + self.target_dir in ["", "~"] + or Path(self.target_dir).is_relative_to(home_dir) + ): raise qubes.exc.QubesException( "Can not backup dom0 home directory to itself!" ) diff --git a/qubes/tests/integ/backup.py b/qubes/tests/integ/backup.py index f902227fa..9ae0c1bb0 100644 --- a/qubes/tests/integ/backup.py +++ b/qubes/tests/integ/backup.py @@ -584,11 +584,15 @@ def test_101_backup_dom0_to_dom0_home(self): home_dir = pwd.getpwnam(local_user).pw_dir with self.assertRaises(qubes.exc.QubesException): self.make_backup( - [self.app.domains[0]], target=home_dir, expect_failure=True + [self.app.domains[0]], + target_vm=self.app.domains[0], + target=home_dir, + expect_failure=True, ) with self.assertRaises(qubes.exc.QubesException): self.make_backup( [self.app.domains[0]], + target_vm=self.app.domains[0], target=os.path.join(home_dir, "somedir"), expect_failure=True, )