]> git.e2factory.org Git - e2factory.git/commitdiff
plug a number of file descriptor leaks
authorTobias Ulmer <tu@emlix.com>
Wed, 7 Oct 2015 18:41:14 +0000 (20:41 +0200)
committerTobias Ulmer <tu@emlix.com>
Fri, 9 Oct 2015 17:21:35 +0000 (19:21 +0200)
Signed-off-by: Tobias Ulmer <tu@emlix.com>
generic/e2lib.lua
local/digest.lua

index 5c43b7d43e9eacd60ec8d5448fa801a7741246de..8b05dd08d5ee6c0541c8bbe4be254a000ccd04b1 100644 (file)
@@ -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
 
index be8f8e6b0f9f8b7061693a045b6f5f0e2222e106..ad3b03d801af3ae18d39f19abb1ca9f7581e41fc 100644 (file)
@@ -124,6 +124,8 @@ function digest.parse(filename)
         table.insert(dt, entry)
     end
 
+    fd:close()
+
     return dt
 end