forked from pool/restorecond
Accepting request 1218003 from security:SELinux
- Fix issue where inotify events are not being handled properly * added: 1231512-Set-GLib-IO-channels-to-binary-mode.patch - Fix issue where restorecond -u is not terminating with SIGTERM (bsc#1231512) * added: 1231512-Set-GLib-IO-channels-to-nonblocking.patch OBS-URL: https://build.opensuse.org/request/show/1218003 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/restorecond?expand=0&rev=16
This commit is contained in:
commit
7e6475c23d
30
1231512-Set-GLib-IO-channels-to-binary-mode.patch
Normal file
30
1231512-Set-GLib-IO-channels-to-binary-mode.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
By default, GIO channels use UTF-8 as encoding, which causes issues when
|
||||||
|
reading binary data such as inotify events.
|
||||||
|
|
||||||
|
Signed-off-by: Fabian Vogt <fvogt@suse.de>
|
||||||
|
---
|
||||||
|
restorecond/user.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/restorecond/user.c b/restorecond/user.c
|
||||||
|
index 3ae3ebbb7230..7188c22e3119 100644
|
||||||
|
--- a/restorecond/user.c
|
||||||
|
+++ b/restorecond/user.c
|
||||||
|
@@ -238,6 +238,7 @@ static int local_server(void) {
|
||||||
|
}
|
||||||
|
/* watch for stdin/terminal going away */
|
||||||
|
GIOChannel *in = g_io_channel_unix_new(0);
|
||||||
|
+ g_io_channel_set_encoding(in, NULL, NULL);
|
||||||
|
g_io_add_watch_full( in,
|
||||||
|
G_PRIORITY_HIGH,
|
||||||
|
G_IO_IN|G_IO_ERR|G_IO_HUP,
|
||||||
|
@@ -282,6 +283,7 @@ int server(int master_fd, const char *watch_file) {
|
||||||
|
set_matchpathcon_flags(MATCHPATHCON_NOTRANS);
|
||||||
|
|
||||||
|
GIOChannel *c = g_io_channel_unix_new(master_fd);
|
||||||
|
+ g_io_channel_set_encoding(c, NULL, NULL);
|
||||||
|
|
||||||
|
g_io_add_watch_full(c,
|
||||||
|
G_PRIORITY_HIGH,
|
||||||
|
--
|
||||||
|
2.47.0
|
32
1231512-Set-GLib-IO-channels-to-nonblocking.patch
Normal file
32
1231512-Set-GLib-IO-channels-to-nonblocking.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Without nonblocking IO, g_io_channel_read_chars waits indefinitely for more
|
||||||
|
data without ever returning control to the event loop.
|
||||||
|
|
||||||
|
Set the IO channels to nonblocking to fix SIGTERM handling.
|
||||||
|
|
||||||
|
Signed-off-by: Fabian Vogt <fvogt@suse.de>
|
||||||
|
---
|
||||||
|
restorecond/user.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/restorecond/user.c b/restorecond/user.c
|
||||||
|
index 7188c22e3119..25e70ae15b94 100644
|
||||||
|
--- a/restorecond/user.c
|
||||||
|
+++ b/restorecond/user.c
|
||||||
|
@@ -239,6 +239,7 @@ static int local_server(void) {
|
||||||
|
/* watch for stdin/terminal going away */
|
||||||
|
GIOChannel *in = g_io_channel_unix_new(0);
|
||||||
|
g_io_channel_set_encoding(in, NULL, NULL);
|
||||||
|
+ g_io_channel_set_flags(in, g_io_channel_get_flags(in) | G_IO_FLAG_NONBLOCK, NULL);
|
||||||
|
g_io_add_watch_full( in,
|
||||||
|
G_PRIORITY_HIGH,
|
||||||
|
G_IO_IN|G_IO_ERR|G_IO_HUP,
|
||||||
|
@@ -284,6 +285,7 @@ int server(int master_fd, const char *watch_file) {
|
||||||
|
|
||||||
|
GIOChannel *c = g_io_channel_unix_new(master_fd);
|
||||||
|
g_io_channel_set_encoding(c, NULL, NULL);
|
||||||
|
+ g_io_channel_set_flags(c, g_io_channel_get_flags(c) | G_IO_FLAG_NONBLOCK, NULL);
|
||||||
|
|
||||||
|
g_io_add_watch_full(c,
|
||||||
|
G_PRIORITY_HIGH,
|
||||||
|
--
|
||||||
|
2.47.0
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Oct 24 09:58:41 UTC 2024 - Cathy Hu <cathy.hu@suse.com>
|
||||||
|
|
||||||
|
- Fix issue where inotify events are not being handled properly
|
||||||
|
* added: 1231512-Set-GLib-IO-channels-to-binary-mode.patch
|
||||||
|
- Fix issue where restorecond -u is not terminating with SIGTERM (bsc#1231512)
|
||||||
|
* added: 1231512-Set-GLib-IO-channels-to-nonblocking.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jul 1 08:12:59 UTC 2024 - Cathy Hu <cathy.hu@suse.com>
|
Mon Jul 1 08:12:59 UTC 2024 - Cathy Hu <cathy.hu@suse.com>
|
||||||
|
|
||||||
|
@ -28,6 +28,8 @@ Source0: https://github.com/SELinuxProject/selinux/releases/download/%{ve
|
|||||||
Source1: https://github.com/SELinuxProject/selinux/releases/download/%{version}/%{name}-%{version}.tar.gz.asc
|
Source1: https://github.com/SELinuxProject/selinux/releases/download/%{version}/%{name}-%{version}.tar.gz.asc
|
||||||
Source2: restorecond.keyring
|
Source2: restorecond.keyring
|
||||||
Patch0: harden_restorecond.service.patch
|
Patch0: harden_restorecond.service.patch
|
||||||
|
Patch1: 1231512-Set-GLib-IO-channels-to-binary-mode.patch
|
||||||
|
Patch2: 1231512-Set-GLib-IO-channels-to-nonblocking.patch
|
||||||
BuildRequires: dbus-1-glib-devel
|
BuildRequires: dbus-1-glib-devel
|
||||||
BuildRequires: libselinux-devel >= %{libselinux_ver}
|
BuildRequires: libselinux-devel >= %{libselinux_ver}
|
||||||
Requires: libselinux1 >= %{libselinux_ver}
|
Requires: libselinux1 >= %{libselinux_ver}
|
||||||
@ -39,6 +41,8 @@ Daemon that watches for file creation and then sets the default SELinux file con
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch -P0 -p1
|
%patch -P0 -p1
|
||||||
|
%patch -P1 -p2
|
||||||
|
%patch -P2 -p2
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="%optflags"
|
export CFLAGS="%optflags"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user