소스 검색

Fix DeviceInfo objects comparing

Do not crash if the other object is completely different type. Return
False ("unequal") instead.

This crashed preparing list of devices in qubes-vm-boot-from-device.

Fixes QubesOS/qubes-issues#3182
Marek Marczykowski-Górecki 6 년 전
부모
커밋
abc0d0063e
1개의 변경된 파일7개의 추가작업 그리고 4개의 파일을 삭제
  1. 7 4
      qubesadmin/devices.py

+ 7 - 4
qubesadmin/devices.py

@@ -91,10 +91,13 @@ class DeviceInfo(object):
         return hash((str(self.backend_domain), self.ident))
         return hash((str(self.backend_domain), self.ident))
 
 
     def __eq__(self, other):
     def __eq__(self, other):
-        return (
-            self.backend_domain == other.backend_domain and
-            self.ident == other.ident
-        )
+        try:
+            return (
+                self.backend_domain == other.backend_domain and
+                self.ident == other.ident
+            )
+        except AttributeError:
+            return False
 
 
     def __str__(self):
     def __str__(self):
         return '{!s}:{!s}'.format(self.backend_domain, self.ident)
         return '{!s}:{!s}'.format(self.backend_domain, self.ident)