From 6d7981f87ccfb1f58513c5c74c83325fb8e81ee8 Mon Sep 17 00:00:00 2001 From: yueyuankun Date: Tue, 24 Mar 2026 17:35:04 +0800 Subject: [PATCH] treebuilder: fix file resource leaks Signed-off-by: yueyuankun --- src/pylorax/treebuilder.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/pylorax/treebuilder.py b/src/pylorax/treebuilder.py index cb3d6b965..883548665 100644 --- a/src/pylorax/treebuilder.py +++ b/src/pylorax/treebuilder.py @@ -47,7 +47,8 @@ def module_desc(mod): output = runcmd_output(["modinfo", "-F", "description", mod]) return output.strip() def read_module_set(name): - return set(l.strip() for l in open(joinpaths(moddir,name)) if ".ko" in l) + with open(joinpaths(moddir,name)) as f: + return set(l.strip() for l in f if ".ko" in l) modsets = {'scsi':read_module_set("modules.block"), 'eth':read_module_set("modules.networking")} @@ -59,10 +60,10 @@ def read_module_set(name): desc = module_desc(joinpaths(root,mod)) or "%s driver" % name modinfo.append(dict(name=name, type=modtype, desc=desc)) - out = open(outfile or joinpaths(moddir,"module-info"), "w") - out.write("Version 0\n") - for mod in sorted(modinfo, key=lambda m: m.get('name')): - out.write('{name}\n\t{type}\n\t"{desc:.65}"\n'.format(**mod)) + with open(outfile or joinpaths(moddir,"module-info"), "w") as out: + out.write("Version 0\n") + for mod in sorted(modinfo, key=lambda m: m.get('name')): + out.write('{name}\n\t{type}\n\t"{desc:.65}"\n'.format(**mod)) class RuntimeBuilder(object): '''Builds the anaconda runtime image.