Skip to content

Commit d76b318

Browse files
committed
q-dev: do not attach unknown device
1 parent 1999c2f commit d76b318

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

qubes/devices.py

+8-3
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
from qubes.device_protocol import (Port, DeviceInfo, UnknownDevice,
6767
DeviceAssignment, VirtualDevice,
6868
AssignmentMode)
69-
69+
from qubes.exc import ProtocolError
7070

7171
DEVICE_DENY_LIST = "/etc/qubes/device-deny.list"
7272

@@ -197,7 +197,7 @@ async def attach(self, assignment: DeviceAssignment):
197197
"""
198198

199199
if assignment.devclass != self._bus:
200-
raise ValueError(
200+
raise ProtocolError(
201201
f'Trying to attach {assignment.devclass} device '
202202
f'when {self._bus} device expected.')
203203

@@ -207,10 +207,15 @@ async def attach(self, assignment: DeviceAssignment):
207207
" do you mean `assign`?")
208208

209209
if len(assignment.devices) != 1:
210-
raise ValueError(
210+
raise ProtocolError(
211211
f'Cannot attach ambiguous {assignment.devclass} device.')
212212

213213
device = assignment.device
214+
215+
if isinstance(device, UnknownDevice):
216+
raise ProtocolError(f"{device.devclass} device not recognized "
217+
f"in {device.port_id} port.")
218+
214219
if device in [ass.device for ass in self.get_attached_devices()]:
215220
raise DeviceAlreadyAttached(
216221
'device {!s} of class {} already attached to {!s}'.format(

0 commit comments

Comments
 (0)