python: raise CsError(CS_ERR_SKIPDATA) when accessing irrelevant data in skipdata mode. this fixes issue #679
diff --git a/bindings/python/capstone/__init__.py b/bindings/python/capstone/__init__.py
index ec8a9ff..b390cf1 100644
--- a/bindings/python/capstone/__init__.py
+++ b/bindings/python/capstone/__init__.py
@@ -541,6 +541,10 @@
raise CsError(CS_ERR_DETAIL)
def __gen_detail(self):
+ if self._raw.id == 0:
+ # do nothing in skipdata mode
+ return
+
arch = self._cs.arch
if arch == CS_ARCH_ARM:
(self.usermode, self.vector_size, self.vector_data, self.cps_mode, self.cps_flag, self.cc, self.update_flags, \
@@ -577,6 +581,8 @@
if 'operands' not in _dict:
self.__gen_detail()
if name not in _dict:
+ if self._raw.id == 0:
+ raise CsError(CS_ERR_SKIPDATA)
raise AttributeError(name)
return _dict[name]