From c03b07930ccf41b696ae02c363d116ba602313d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Schoentgen?= Date: Sun, 6 Jan 2019 15:06:30 +0100 Subject: [PATCH] Fix ResourceWarning: unclosed file, prevent resource leaks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mickaƫl Schoentgen --- examples/addons/commands-paths.py | 6 +++--- mitmproxy/addons/session.py | 4 ++-- mitmproxy/contrib/wbxml/ASCommandResponse.py | 5 +++-- test/bench/benchmark.py | 3 ++- test/mitmproxy/addons/test_session.py | 3 ++- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/examples/addons/commands-paths.py b/examples/addons/commands-paths.py index f37a0fbc5..4d9535b92 100644 --- a/examples/addons/commands-paths.py +++ b/examples/addons/commands-paths.py @@ -20,9 +20,9 @@ class MyAddon: for f in flows: totals[f.request.host] = totals.setdefault(f.request.host, 0) + 1 - fp = open(path, "w+") - for cnt, dom in sorted([(v, k) for (k, v) in totals.items()]): - fp.write("%s: %s\n" % (cnt, dom)) + with open(path, "w+") as fp: + for cnt, dom in sorted([(v, k) for (k, v) in totals.items()]): + fp.write("%s: %s\n" % (cnt, dom)) ctx.log.alert("done") diff --git a/mitmproxy/addons/session.py b/mitmproxy/addons/session.py index 63e382ece..f9073c3e8 100644 --- a/mitmproxy/addons/session.py +++ b/mitmproxy/addons/session.py @@ -87,8 +87,8 @@ class SessionDB: def _create_session(self): script_path = pkg_data.path("io/sql/session_create.sql") - qry = open(script_path, 'r').read() - self.con.executescript(qry) + with open(script_path, 'r') as qry: + self.con.executescript(qry.read()) self.con.commit() @staticmethod diff --git a/mitmproxy/contrib/wbxml/ASCommandResponse.py b/mitmproxy/contrib/wbxml/ASCommandResponse.py index 2d60eb2da..34755cbe6 100644 --- a/mitmproxy/contrib/wbxml/ASCommandResponse.py +++ b/mitmproxy/contrib/wbxml/ASCommandResponse.py @@ -63,8 +63,9 @@ if __name__ == "__main__": listOfSamples = os.listdir(samplesDir) for filename in listOfSamples: - byteWBXML = open(samplesDir + os.sep + filename, "rb").read() - + with open(samplesDir + os.sep + filename, "rb") as f: + byteWBXML = f.read() + logging.info("-"*100) logging.info(filename) logging.info("-"*100) diff --git a/test/bench/benchmark.py b/test/bench/benchmark.py index 84ec6005a..076ad6c9d 100644 --- a/test/bench/benchmark.py +++ b/test/bench/benchmark.py @@ -31,7 +31,8 @@ class Benchmark: stdout=asyncio.subprocess.PIPE ) stdout, _ = await traf.communicate() - open(ctx.options.benchmark_save_path + ".bench", mode="wb").write(stdout) + with open(ctx.options.benchmark_save_path + ".bench", mode="wb") as f: + f.write(stdout) ctx.log.error("Proxy saw %s requests, %s responses" % (self.reqs, self.resps)) ctx.log.error(stdout.decode("ascii")) backend.kill() diff --git a/test/mitmproxy/addons/test_session.py b/test/mitmproxy/addons/test_session.py index 20feb69d7..973514267 100644 --- a/test/mitmproxy/addons/test_session.py +++ b/test/mitmproxy/addons/test_session.py @@ -68,7 +68,8 @@ class TestSession: os.remove(path) con = sqlite3.connect(path) script_path = pkg_data.path("io/sql/session_create.sql") - qry = open(script_path, 'r').read() + with open(script_path) as f: + qry = f.read() with con: con.executescript(qry) blob = b'blob_of_data'