On Wed, Sep 14, 2022 at 6:08 PM Vit Mojzis <vmojzis@xxxxxxxxxx> wrote: > > Fixes: > # semanage fcontext -f f -m -t passwd_file_t /etc/security/opasswd > libsemanage.dbase_llist_query: could not query record value (No such file or directory). > > Signed-off-by: Vit Mojzis <vmojzis@xxxxxxxxxx> > --- > python/semanage/seobject.py | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > > diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py > index 0782c082..2d52f53c 100644 > --- a/python/semanage/seobject.py > +++ b/python/semanage/seobject.py > @@ -177,6 +177,22 @@ except (OSError, ImportError): > for l in self.log_list: > syslog.syslog(syslog.LOG_INFO, message + l) > > +# Define a context manager to suppress stderr. > +class suppress_stderr(object): > + def __init__(self): > + # Open a /dev/null file to be used as stderr > + self.null = os.open(os.devnull,os.O_RDWR) > + self.save_fd = os.dup(2) > + > + def __enter__(self): > + # Set stderr to the null file > + os.dup2(self.null,2) > + > + def __exit__(self, *_): > + # Restore stderr > + os.dup2(self.save_fd,2) > + os.close(self.null) > + > > class nulllogger: > > @@ -2510,7 +2526,8 @@ class fcontextRecords(semanageRecords): > raise ValueError(_("File context for %s is not defined") % target) > > try: > - (rc, fcontext) = semanage_fcontext_query_local(self.sh, k) > + with suppress_stderr(): > + (rc, fcontext) = semanage_fcontext_query_local(self.sh, k) > except OSError: > try: > (rc, fcontext) = semanage_fcontext_query(self.sh, k) > -- > 2.35.3 > I think it is better to rework semanage/seobject.py so that there is no error. I sent a patch to the list that should fix this. Thanks for the report. Sorry that it took so long to get to. Jim