Skip to content

Commit 0ba397f

Browse files
committed
qui-devices: do not crash if some properties are denied in policy
Default policy doesn't allow accessing device-related features on dom0. Don't crash widget on this. Fixes QubesOS/qubes-issues#10114
1 parent 954b6ad commit 0ba397f

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

qui/devices/device_widget.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -475,9 +475,12 @@ def initialize_features(self, *_args, **_kwargs):
475475
mic_dev_strings = []
476476
if microphone:
477477
for domain in domains:
478-
mic_feature = domain.features.get(
479-
backend.FEATURE_ATTACH_WITH_MIC, False
480-
)
478+
try:
479+
mic_feature = domain.features.get(
480+
backend.FEATURE_ATTACH_WITH_MIC, False
481+
)
482+
except qubesadmin.exc.QubesDaemonAccessError:
483+
continue
481484
if isinstance(mic_feature, str):
482485
mic_dev_strings.extend(
483486
[dev for dev in mic_feature.split(" ") if dev]
@@ -493,7 +496,10 @@ def initialize_features(self, *_args, **_kwargs):
493496
self.parent_ports_to_hide = []
494497
parent_ids_to_hide = []
495498
for domain in domains:
496-
children_feature = domain.features.get(backend.FEATURE_HIDE_CHILDREN, False)
499+
try:
500+
children_feature = domain.features.get(backend.FEATURE_HIDE_CHILDREN, False)
501+
except qubesadmin.exc.QubesDaemonAccessError:
502+
continue
497503
if isinstance(children_feature, str):
498504
parent_ids_to_hide.extend([s for s in children_feature.split(" ") if s])
499505

0 commit comments

Comments
 (0)