• E
    python: don't mask libvirt errors · 63bfc598
    Eric Blake 提交于
    A user reported this crash when using python bindings:
    
      File "/home/nox/workspace/NOX/src/NOX/hooks.py", line 134, in trigger
        hook.trigger(event)
      File "/home/nox/workspace/NOX/src/NOX/hooks.py", line 33, in trigger
        self.handlers[event]()
      File "/home/nox/workspace/NOX/hooks/volatility.py", line 81, in memory_dump
        for block in Memory(self.ctx):
      File "/home/see/workspace/NOX/src/NOX/lib/libtools.py", line 179, in next
        libvirt.VIR_MEMORY_PHYSICAL)
      File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1759, in memoryPeek
        ret = libvirtmod.virDomainMemoryPeek(self._o, start, size, flags)
    SystemError: error return without exception set
    
    In the python bindings, returning NULL makes python think an
    exception was thrown, while returning the None object lets the
    wrappers know that a libvirt error exists.
    
    Reported by Nox DaFox, fix suggested by Dan Berrange.
    
    * python/libvirt-override.c (libvirt_virDomainBlockPeek)
    (libvirt_virDomainMemoryPeek): Return python's None object, so
    wrapper knows to check libvirt error.
    63bfc598
libvirt-override.c 174.5 KB