Message ID | 20190105154551.18768-2-nicolas.iooss@m4x.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [1/2] python/semanage: explain why sepolicy is imported in a function | expand |
On Sat, Jan 5, 2019 at 4:46 PM Nicolas Iooss <nicolas.iooss@m4x.org> wrote: > > sepolgen testsuite reports the following warning on a system with > /etc/selinux/sepolgen.conf: > > .../src/./sepolgen/defaults.py:35: ResourceWarning: unclosed file > <_io.TextIOWrapper name='/etc/selinux/sepolgen.conf' mode='r' > encoding='UTF-8'> > > Fix this by properly closing the file in PathChooser.__init__(). > > Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org> Oops, I already sent this patch a few weeks ago with three over patches but nobody has reviewed them. Should I merge it directly? Nicolas > --- > python/sepolgen/src/sepolgen/defaults.py | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/python/sepolgen/src/sepolgen/defaults.py b/python/sepolgen/src/sepolgen/defaults.py > index 199acfafe4cf..533a90412475 100644 > --- a/python/sepolgen/src/sepolgen/defaults.py > +++ b/python/sepolgen/src/sepolgen/defaults.py > @@ -32,12 +32,13 @@ class PathChooser(object): > self.config_pathname = pathname > ignore = re.compile(r"^\s*(?:#.+)?$") > consider = re.compile(r"^\s*(\w+)\s*=\s*(.+?)\s*$") > - for lineno, line in enumerate(open(pathname)): > - if ignore.match(line): continue > - mo = consider.match(line) > - if not mo: > - raise ValueError("%s:%d: line is not in key = value format" % (pathname, lineno+1)) > - self.config[mo.group(1)] = mo.group(2) > + with open(pathname, "r") as fd: > + for lineno, line in enumerate(fd): > + if ignore.match(line): continue > + mo = consider.match(line) > + if not mo: > + raise ValueError("%s:%d: line is not in key = value format" % (pathname, lineno+1)) > + self.config[mo.group(1)] = mo.group(2) > > # We're only exporting one useful function, so why not be a function > def __call__(self, testfilename, pathset="SELINUX_DEVEL_PATH"): > -- > 2.20.1 >
Nicolas Iooss <nicolas.iooss@m4x.org> writes: > On Sat, Jan 5, 2019 at 4:46 PM Nicolas Iooss <nicolas.iooss@m4x.org> wrote: >> >> sepolgen testsuite reports the following warning on a system with >> /etc/selinux/sepolgen.conf: >> >> .../src/./sepolgen/defaults.py:35: ResourceWarning: unclosed file >> <_io.TextIOWrapper name='/etc/selinux/sepolgen.conf' mode='r' >> encoding='UTF-8'> >> >> Fix this by properly closing the file in PathChooser.__init__(). >> >> Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org> > > Oops, I already sent this patch a few weeks ago with three over > patches but nobody has reviewed them. Should I merge it directly? > > Nicolas Both patches merged. Thanks! > >> --- >> python/sepolgen/src/sepolgen/defaults.py | 13 +++++++------ >> 1 file changed, 7 insertions(+), 6 deletions(-) >> >> diff --git a/python/sepolgen/src/sepolgen/defaults.py b/python/sepolgen/src/sepolgen/defaults.py >> index 199acfafe4cf..533a90412475 100644 >> --- a/python/sepolgen/src/sepolgen/defaults.py >> +++ b/python/sepolgen/src/sepolgen/defaults.py >> @@ -32,12 +32,13 @@ class PathChooser(object): >> self.config_pathname = pathname >> ignore = re.compile(r"^\s*(?:#.+)?$") >> consider = re.compile(r"^\s*(\w+)\s*=\s*(.+?)\s*$") >> - for lineno, line in enumerate(open(pathname)): >> - if ignore.match(line): continue >> - mo = consider.match(line) >> - if not mo: >> - raise ValueError("%s:%d: line is not in key = value format" % (pathname, lineno+1)) >> - self.config[mo.group(1)] = mo.group(2) >> + with open(pathname, "r") as fd: >> + for lineno, line in enumerate(fd): >> + if ignore.match(line): continue >> + mo = consider.match(line) >> + if not mo: >> + raise ValueError("%s:%d: line is not in key = value format" % (pathname, lineno+1)) >> + self.config[mo.group(1)] = mo.group(2) >> >> # We're only exporting one useful function, so why not be a function >> def __call__(self, testfilename, pathset="SELINUX_DEVEL_PATH"): >> -- >> 2.20.1 >>
diff --git a/python/sepolgen/src/sepolgen/defaults.py b/python/sepolgen/src/sepolgen/defaults.py index 199acfafe4cf..533a90412475 100644 --- a/python/sepolgen/src/sepolgen/defaults.py +++ b/python/sepolgen/src/sepolgen/defaults.py @@ -32,12 +32,13 @@ class PathChooser(object): self.config_pathname = pathname ignore = re.compile(r"^\s*(?:#.+)?$") consider = re.compile(r"^\s*(\w+)\s*=\s*(.+?)\s*$") - for lineno, line in enumerate(open(pathname)): - if ignore.match(line): continue - mo = consider.match(line) - if not mo: - raise ValueError("%s:%d: line is not in key = value format" % (pathname, lineno+1)) - self.config[mo.group(1)] = mo.group(2) + with open(pathname, "r") as fd: + for lineno, line in enumerate(fd): + if ignore.match(line): continue + mo = consider.match(line) + if not mo: + raise ValueError("%s:%d: line is not in key = value format" % (pathname, lineno+1)) + self.config[mo.group(1)] = mo.group(2) # We're only exporting one useful function, so why not be a function def __call__(self, testfilename, pathset="SELINUX_DEVEL_PATH"):
sepolgen testsuite reports the following warning on a system with /etc/selinux/sepolgen.conf: .../src/./sepolgen/defaults.py:35: ResourceWarning: unclosed file <_io.TextIOWrapper name='/etc/selinux/sepolgen.conf' mode='r' encoding='UTF-8'> Fix this by properly closing the file in PathChooser.__init__(). Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org> --- python/sepolgen/src/sepolgen/defaults.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)