summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2014-10-26 06:52:38 +0000
committerelie <elie>2014-10-26 06:52:38 +0000
commite4905f562d2f68b4378f4f34712ad77fd2b8a475 (patch)
treed0d5f5477f8f814bda640d1119250d4e118f198f
parent5215d0d2b72743407eb748efad61c985e3ec3bea (diff)
downloadpysnmp-e4905f562d2f68b4378f4f34712ad77fd2b8a475.tar.gz
fix to file descriptor leak at MibBuilder
-rw-r--r--CHANGES1
-rw-r--r--pysnmp/smi/builder.py5
2 files changed, 5 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index bb09e2c..ad58de2 100644
--- a/CHANGES
+++ b/CHANGES
@@ -92,6 +92,7 @@ Revision 4.2.6rc0
- Fix at NotificationOriginator to make is using MibInstrumentationController
when expanding Notification OBJECTS into Managed Objects Instances.
- Missing wrongLength and wrongEncoding SMI errors added.
+- Fix to file descriptor leak at MibBuilder.
Revision 4.2.5
--------------
diff --git a/pysnmp/smi/builder.py b/pysnmp/smi/builder.py
index 214d723..5840b08 100644
--- a/pysnmp/smi/builder.py
+++ b/pysnmp/smi/builder.py
@@ -162,7 +162,10 @@ class DirMibSource(__AbstractMibSource):
def _getData(self, f, mode):
try:
if f in os.listdir(self._srcName): # make FS case-sensitive
- return open(os.path.join(self._srcName, f), mode).read()
+ fp = open(os.path.join(self._srcName, f), mode)
+ data = fp.read()
+ fp.close()
+ return data
except OSError:
pass
raise IOError # pretend there's no such file