Re: [PATCH] dbus: Fix FileNotFoundError in org.selinux.relabel_on_boot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/15/19 9:54 AM, Petr Lautrbach wrote:
When org.selinux.relabel_on_boot(0) was called twice, it failed with
FileNotFoundError.

Fixes:
     $ dbus-send --system --print-reply --dest=org.selinux /org/selinux/object org.selinux.relabel_on_boot int64:1
     method return sender=:1.53 -> dest=:1.54 reply_serial=2
     $ dbus-send --system --print-reply --dest=org.selinux /org/selinux/object org.selinux.relabel_on_boot int64:0
     method return sender=:1.53 -> dest=:1.55 reply_serial=2
     $ dbus-send --system --print-reply --dest=org.selinux /org/selinux/object org.selinux.relabel_on_boot int64:0
     Error org.freedesktop.DBus.Python.FileNotFoundError: FileNotFoundError: [Errno 2] No such file or directory: '/.autorelabel'

Signed-off-by: Petr Lautrbach <plautrba@xxxxxxxxxx>
---

Note: This is python 3 only code and it fails in travis with PYVER=python2.7 RUBYLIBVER=2.6:

$ PATH="$VIRTUAL_ENV/bin:$PATH" ./scripts/run-flake8

Analyzing 187 Python scripts

./dbus/selinux_server.py:90:20: F821 undefined name 'FileNotFoundError'

./installdir/usr/share/system-config-selinux/selinux_server.py:90:20: F821 undefined name 'FileNotFoundError'

The command "PATH="$VIRTUAL_ENV/bin:$PATH" ./scripts/run-flake8" exited with 1.

Hmm...given that, do we want to defer it until after 3.0 final release, or are we going to switch travis over to only test with python3 now?




  dbus/selinux_server.py | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/dbus/selinux_server.py b/dbus/selinux_server.py
index b9debc071485..be4f4557a9fa 100644
--- a/dbus/selinux_server.py
+++ b/dbus/selinux_server.py
@@ -85,7 +85,10 @@ class selinux_server(slip.dbus.service.Object):
              fd = open("/.autorelabel", "w")
              fd.close()
          else:
-            os.unlink("/.autorelabel")
+            try:
+                os.unlink("/.autorelabel")
+            except FileNotFoundError:
+                pass
def write_selinux_config(self, enforcing=None, policy=None):
          path = selinux.selinux_path() + "config"





[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux