From cc418232688036c9987d9d382fbe461df3072484 Mon Sep 17 00:00:00 2001 From: Tobias Ulmer Date: Wed, 7 Oct 2015 20:41:14 +0200 Subject: [PATCH] plug a number of file descriptor leaks Signed-off-by: Tobias Ulmer --- generic/e2lib.lua | 12 ++++++++---- local/digest.lua | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/generic/e2lib.lua b/generic/e2lib.lua index 5c43b7d..8b05dd0 100644 --- a/generic/e2lib.lua +++ b/generic/e2lib.lua @@ -576,6 +576,9 @@ function e2lib.finish(returncode) returncode = 0 end e2lib.cleanup() + if e2lib.globals.debuglogfile then + e2lib.globals.debuglogfile:close() + end os.exit(returncode) end @@ -702,12 +705,12 @@ function e2lib.read_line(path) return false, err.new("%s: %s", path, msg) end local l, msg = f:read("*l") + f:close() if not l then if not msg then msg = "end of file" end - f:close() return false, err.new("%s: %s", path, msg) end return l @@ -1232,6 +1235,7 @@ function e2lib.parse_versionfile(filename) e2lib.abort("can't open version file: " .. filename) end local l = f:readline() + f:close() if not l then e2lib.abort("can't parse version file: " .. filename) end @@ -1250,6 +1254,7 @@ function e2lib.parse_e2versionfile(filename) e2lib.abort("can't open e2version file: " .. filename) end local l = f:readline() + f:close() if not l then e2lib.abort("can't parse e2version file: " .. filename) end @@ -1806,11 +1811,10 @@ function e2lib.write_file(file, data) return false, string.format("open failed: %s", msg) end local rc, msg = f:write(data) + f:close() if not rc then - f:close() return false, string.format("write failed: %s", msg) end - f:close() return true, nil end @@ -1824,10 +1828,10 @@ function e2lib.read_file(file) return nil, err.new("%s", msg) end local s, msg = f:read("*a") + f:close() if not s then return nil, err.new("%s", msg) end - f:close() return s, nil end diff --git a/local/digest.lua b/local/digest.lua index be8f8e6..ad3b03d 100644 --- a/local/digest.lua +++ b/local/digest.lua @@ -124,6 +124,8 @@ function digest.parse(filename) table.insert(dt, entry) end + fd:close() + return dt end -- 2.39.5