[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xend: pci.py: fix open file descriptor leak
# HG changeset patch # User Kouya Shimura <kouya@xxxxxxxxxxxxxx> # Date 1295541683 0 # Node ID 3a89585d77b1c1c5b795efc247d3648233872938 # Parent 0592d6ca9177179f5a2724baa7598b3317415da3 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@xxxxxxxxxxxxxx> --- tools/python/xen/util/pci.py | 4 ++++ 1 files changed, 4 insertions(+) diff -r 0592d6ca9177 -r 3a89585d77b1 tools/python/xen/util/pci.py --- a/tools/python/xen/util/pci.py Thu Jan 20 16:32:33 2011 +0000 +++ b/tools/python/xen/util/pci.py Thu Jan 20 16:41:23 2011 +0000 @@ -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 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |