[pulseaudio-discuss] [PATCH] rtkit: Fail with explanation on grsec

Stanisław Pitucha viraptor at gmail.com
Fri Jan 22 21:37:35 PST 2016


In case of grsec kernel, make sure that we can actually see other
processes.  If the system is restricted via "chroot_findtask" sysctl or
CONFIG_GRKERNSEC_PROC, rtkit won't be able to monitor other processes,
but the error message is just a generic "Operation not permitted".

Since this prevents rtkit from working at all, just fail fast and loud
at startup instead.
---
 rtkit-daemon.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/rtkit-daemon.c b/rtkit-daemon.c
index 3ecc1f7..294736c 100644
--- a/rtkit-daemon.c
+++ b/rtkit-daemon.c
@@ -1759,6 +1759,7 @@ static int drop_privileges(void) {
         }
 
         if (do_chroot) {
+                FILE* init_stat;
 
                 /* Second, chroot() */
                 if (chroot("/proc") < 0 ||
@@ -1769,6 +1770,14 @@ static int drop_privileges(void) {
                 }
                 proc = "/";
 
+                init_stat = fopen("/1/stat", "r");
+                if (init_stat == NULL) {
+                    r = -errno;
+                    syslog(LOG_ERR, "Cannot see other processes in chroot. Check 'chroot_findtask' if using grsec, or use --no-chroot.\n");
+                    return r;
+                }
+                fclose(init_stat);
+
                 syslog(LOG_DEBUG, "Successfully called chroot.\n");
         }
 
-- 
2.7.0



More information about the pulseaudio-discuss mailing list