Skip to content

Commit a85fac4

Browse files
committed
Remove internal qubes from being target of ask
For: QubesOS/qubes-issues#1512
1 parent aff2e68 commit a85fac4

File tree

2 files changed

+39
-5
lines changed

2 files changed

+39
-5
lines changed

qrexec/policy/parser.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,6 +1875,14 @@ def collect_targets_for_ask(self, request):
18751875
if source_uuid in targets:
18761876
targets.remove(source_uuid)
18771877

1878+
for unwanted_target in targets.copy():
1879+
if unwanted_target.startswith("@dispvm:"):
1880+
unwanted_target_name = unwanted_target[len("@dispvm:") :]
1881+
else:
1882+
unwanted_target_name = unwanted_target
1883+
if info[unwanted_target_name].get("internal", False):
1884+
targets.remove(unwanted_target)
1885+
18781886
return targets
18791887

18801888

qrexec/tests/policy_parser.py

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,24 @@
8787
"power_state": "Halted",
8888
"uuid": "f3e538bd-4427-4697-bed7-45ef3270df21",
8989
},
90+
"default-mgmt-dvm": {
91+
"internal": True,
92+
"tags": [],
93+
"type": "AppVM",
94+
"default_dispvm": "default-dvm",
95+
"template_for_dispvms": True,
96+
"power_state": "Halted",
97+
"uuid": "f3e538bd-4427-4697-bed7-45ef3270df22",
98+
},
99+
"internal-vm": {
100+
"internal": True,
101+
"tags": [],
102+
"type": "AppVM",
103+
"default_dispvm": "default-dvm",
104+
"template_for_dispvms": False,
105+
"power_state": "Halted",
106+
"uuid": "f3e538bd-4427-4697-bed7-45ef3270df23",
107+
},
90108
"test-invalid-dvm": {
91109
"tags": ["tag1", "tag2"],
92110
"type": "AppVM",
@@ -326,9 +344,12 @@ def test_021_Target_expand(self):
326344
[
327345
"@dispvm",
328346
"@dispvm:default-dvm",
347+
"@dispvm:default-mgmt-dvm",
329348
"@dispvm:test-vm3",
330349
"@dispvm:test-vm4",
331350
"default-dvm",
351+
"default-mgmt-dvm",
352+
"internal-vm",
332353
"test-invalid-dvm",
333354
"test-no-dvm",
334355
"test-relayvm1",
@@ -355,9 +376,12 @@ def test_021_Target_expand(self):
355376
"@adminvm",
356377
"@dispvm",
357378
"@dispvm:default-dvm",
379+
"@dispvm:default-mgmt-dvm",
358380
"@dispvm:test-vm3",
359381
"@dispvm:test-vm4",
360382
"default-dvm",
383+
"default-mgmt-dvm",
384+
"internal-vm",
361385
"test-invalid-dvm",
362386
"test-no-dvm",
363387
"test-relayvm1",
@@ -381,17 +405,19 @@ def test_021_Target_expand(self):
381405
self.assertCountEqual(
382406
parser.Target("@type:AppVM").expand(system_info=self.system_info),
383407
[
408+
"default-dvm",
409+
"default-mgmt-dvm",
410+
"internal-vm",
411+
"test-invalid-dvm",
412+
"test-no-dvm",
413+
"test-relayvm1",
384414
"test-vm1",
385415
"test-vm2",
386416
"test-vm3",
387417
"test-vm4",
388-
"default-dvm",
389-
"test2-vm1",
390418
"test2-relayvm1",
391419
"test2-relayvm2",
392-
"test-invalid-dvm",
393-
"test-no-dvm",
394-
"test-relayvm1",
420+
"test2-vm1",
395421
],
396422
)
397423
self.assertCountEqual(

0 commit comments

Comments
 (0)