[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.