diff options
author | netblue30 <netblue30@yahoo.com> | 2018-03-30 09:24:25 -0400 |
---|---|---|
committer | netblue30 <netblue30@yahoo.com> | 2018-03-30 09:24:25 -0400 |
commit | 9686c5413fc5acccafed76775bb86c9d4c1d354d (patch) | |
tree | 1509cf357e8baaa84bd997b6ca93798b4810d82f /src | |
parent | spectre clang support (diff) | |
download | firejail-9686c5413fc5acccafed76775bb86c9d4c1d354d.tar.gz firejail-9686c5413fc5acccafed76775bb86c9d4c1d354d.tar.zst firejail-9686c5413fc5acccafed76775bb86c9d4c1d354d.zip |
enable/disable dbus handling in /etc/firejail/firejail.config
Diffstat (limited to 'src')
-rw-r--r-- | src/firejail/checkcfg.c | 9 | ||||
-rw-r--r-- | src/firejail/dbus.c | 5 | ||||
-rw-r--r-- | src/firejail/firejail.h | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/src/firejail/checkcfg.c b/src/firejail/checkcfg.c index 0d77c199b..20845270e 100644 --- a/src/firejail/checkcfg.c +++ b/src/firejail/checkcfg.c | |||
@@ -85,6 +85,15 @@ int checkcfg(int val) { | |||
85 | else | 85 | else |
86 | goto errout; | 86 | goto errout; |
87 | } | 87 | } |
88 | // dbus | ||
89 | else if (strncmp(ptr, "dbus ", 5) == 0) { | ||
90 | if (strcmp(ptr + 5, "yes") == 0) | ||
91 | cfg_val[CFG_DBUS] = 1; | ||
92 | else if (strcmp(ptr + 5, "no") == 0) | ||
93 | cfg_val[CFG_DBUS] = 0; | ||
94 | else | ||
95 | goto errout; | ||
96 | } | ||
88 | // join | 97 | // join |
89 | else if (strncmp(ptr, "join ", 5) == 0) { | 98 | else if (strncmp(ptr, "join ", 5) == 0) { |
90 | if (strcmp(ptr + 5, "yes") == 0) | 99 | if (strcmp(ptr + 5, "yes") == 0) |
diff --git a/src/firejail/dbus.c b/src/firejail/dbus.c index eee3e2a35..6c122c6d0 100644 --- a/src/firejail/dbus.c +++ b/src/firejail/dbus.c | |||
@@ -20,6 +20,11 @@ | |||
20 | #include "firejail.h" | 20 | #include "firejail.h" |
21 | 21 | ||
22 | void dbus_session_disable(void) { | 22 | void dbus_session_disable(void) { |
23 | if (!checkcfg(CFG_DBUS)) { | ||
24 | fwarning("D-Bus handling is disabled in Firejail configuration file\n"); | ||
25 | return; | ||
26 | } | ||
27 | |||
23 | char *path; | 28 | char *path; |
24 | if (asprintf(&path, "/run/user/%d/bus", getuid()) == -1) | 29 | if (asprintf(&path, "/run/user/%d/bus", getuid()) == -1) |
25 | errExit("asprintf"); | 30 | errExit("asprintf"); |
diff --git a/src/firejail/firejail.h b/src/firejail/firejail.h index 6141d6223..fdb5745cb 100644 --- a/src/firejail/firejail.h +++ b/src/firejail/firejail.h | |||
@@ -744,6 +744,7 @@ enum { | |||
744 | CFG_XPRA_ATTACH, | 744 | CFG_XPRA_ATTACH, |
745 | CFG_PRIVATE_LIB, | 745 | CFG_PRIVATE_LIB, |
746 | CFG_APPARMOR, | 746 | CFG_APPARMOR, |
747 | CFG_DBUS, | ||
747 | CFG_MAX // this should always be the last entry | 748 | CFG_MAX // this should always be the last entry |
748 | }; | 749 | }; |
749 | extern char *xephyr_screen; | 750 | extern char *xephyr_screen; |