* [PATCH] python: Hide error message when modifying non-local fcontext
@ 2022-09-14 22:03 Vit Mojzis
2022-10-19 19:06 ` James Carter
0 siblings, 1 reply; 3+ messages in thread
From: Vit Mojzis @ 2022-09-14 22:03 UTC (permalink / raw)
To: selinux
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@redhat.com>
---
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] python: Hide error message when modifying non-local fcontext
2022-09-14 22:03 [PATCH] python: Hide error message when modifying non-local fcontext Vit Mojzis
@ 2022-10-19 19:06 ` James Carter
2022-10-20 8:16 ` Vit Mojzis
0 siblings, 1 reply; 3+ messages in thread
From: James Carter @ 2022-10-19 19:06 UTC (permalink / raw)
To: Vit Mojzis; +Cc: selinux
On Wed, Sep 14, 2022 at 6:08 PM Vit Mojzis <vmojzis@redhat.com> 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@redhat.com>
> ---
> 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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] python: Hide error message when modifying non-local fcontext
2022-10-19 19:06 ` James Carter
@ 2022-10-20 8:16 ` Vit Mojzis
0 siblings, 0 replies; 3+ messages in thread
From: Vit Mojzis @ 2022-10-20 8:16 UTC (permalink / raw)
To: James Carter; +Cc: selinux
On 10/19/22 21:06, James Carter wrote:
> On Wed, Sep 14, 2022 at 6:08 PM Vit Mojzis <vmojzis@redhat.com> 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@redhat.com>
>> ---
>> 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
Hi Jim,
thank you for looking into this. I agree that your solution is much more
elegant and should be used instead.
Vit
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-10-20 8:16 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-14 22:03 [PATCH] python: Hide error message when modifying non-local fcontext Vit Mojzis
2022-10-19 19:06 ` James Carter
2022-10-20 8:16 ` Vit Mojzis
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.