mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
xend: pci.py: fix open file descriptor leak
I got the following error:
$ xm pci-list-assignable-devices
Error: [Errno 24] Too many open files
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
This commit is contained in:
1 parent
1da4ffed6f
commit
c398531ffa
1 file changed
+4
@@ -922,10 +922,12 @@ class PciDevice:
|
||||
pos = PCI_CAPABILITY_LIST
|
||||
|
||||
try:
|
||||
fd = None
|
||||
fd = os.open(path, os.O_RDONLY)
|
||||
os.lseek(fd, PCI_STATUS, 0)
|
||||
status = struct.unpack('H', os.read(fd, 2))[0]
|
||||
if (status & 0x10) == 0:
|
||||
os.close(fd)
|
||||
# The device doesn't support PCI_STATUS_CAP_LIST
|
||||
return 0
|
||||
|
||||
@@ -952,6 +954,8 @@ class PciDevice:
|
||||
|
||||
os.close(fd)
|
||||
except OSError, (errno, strerr):
|
||||
if fd is not None:
|
||||
os.close(fd)
|
||||
raise PciDeviceParseError(('Error when accessing sysfs: %s (%d)' %
|
||||
(strerr, errno)))
|
||||
return pos
|
||||
|
||||