aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2016-03-28 20:00:57 -0400
committerLibravatar netblue30 <netblue30@yahoo.com>2016-03-28 20:00:57 -0400
commitaae3576b007080e3aeb9ab662c4742b18ad6e3fd (patch)
tree5b83a2d5697bcfa01c9e68e1c7bcd45e46dcfaba
parentpulseaudio fix (diff)
downloadfirejail-aae3576b007080e3aeb9ab662c4742b18ad6e3fd.tar.gz
firejail-aae3576b007080e3aeb9ab662c4742b18ad6e3fd.tar.zst
firejail-aae3576b007080e3aeb9ab662c4742b18ad6e3fd.zip
x11 work
-rw-r--r--README1
-rw-r--r--etc/firejail.config6
-rw-r--r--src/firejail/checkcfg.c14
-rw-r--r--src/firejail/firejail.h1
-rw-r--r--src/firejail/x11.c2
5 files changed, 23 insertions, 1 deletions
diff --git a/README b/README
index 26e6d5e95..b672a4ab8 100644
--- a/README
+++ b/README
@@ -44,6 +44,7 @@ jrabe (https://github.com/jrabe)
44 - Epiphany profile 44 - Epiphany profile
45 - Polari profile 45 - Polari profile
46 - qTox profile 46 - qTox profile
47 - X11 fixes
47jgriffiths (https://github.com/jgriffiths) 48jgriffiths (https://github.com/jgriffiths)
48 - make rpm packages support 49 - make rpm packages support
49Tom Mellor (https://github.com/kalegrill) 50Tom Mellor (https://github.com/kalegrill)
diff --git a/etc/firejail.config b/etc/firejail.config
index 0721ce6a4..8333c26ba 100644
--- a/etc/firejail.config
+++ b/etc/firejail.config
@@ -30,3 +30,9 @@
30# Enable or disable file transfer support, default enabled. 30# Enable or disable file transfer support, default enabled.
31# file-transfer yes 31# file-transfer yes
32 32
33# Screen size for --x11=xephyr, default 800x600. Run /usr/bin/xrandr for
34# a full list of resolutions available on your specifc setup.
35# xephyr-screen 640x480
36# xephyr-screen 800x600
37# xephyr-screen 1024x768
38# xephyr-screen 1280x1024
diff --git a/src/firejail/checkcfg.c b/src/firejail/checkcfg.c
index df0e1a8e1..430b0c5a6 100644
--- a/src/firejail/checkcfg.c
+++ b/src/firejail/checkcfg.c
@@ -24,6 +24,7 @@
24 24
25static int initialized = 0; 25static int initialized = 0;
26static int cfg_val[CFG_MAX]; 26static int cfg_val[CFG_MAX];
27char *xephyr_screen = "800x600";
27 28
28int checkcfg(int val) { 29int checkcfg(int val) {
29 EUID_ASSERT(); 30 EUID_ASSERT();
@@ -132,8 +133,21 @@ int checkcfg(int val) {
132 else 133 else
133 goto errout; 134 goto errout;
134 } 135 }
136
137 // Xephyr screen size
138 else if (strncmp(ptr, "xephyr-screen ", 14) == 0) {
139 // expecting two numbers and an x between them
140 int n1;
141 int n2;
142 int rv = sscanf(ptr + 14, "%dx%d", &n1, &n2);
143 if (rv != 2)
144 goto errout;
145 if (asprintf(&xephyr_screen, "%dx%d", n1, n2) == -1)
146 errExit("asprintf");
147 }
135 else 148 else
136 goto errout; 149 goto errout;
150
137 free(ptr); 151 free(ptr);
138 } 152 }
139 153
diff --git a/src/firejail/firejail.h b/src/firejail/firejail.h
index d729504a2..d58c6291d 100644
--- a/src/firejail/firejail.h
+++ b/src/firejail/firejail.h
@@ -531,6 +531,7 @@ int x11_display(void);
531void x11_start(int argc, char **argv); 531void x11_start(int argc, char **argv);
532void x11_start_xpra(int argc, char **argv); 532void x11_start_xpra(int argc, char **argv);
533void x11_start_xephyr(int argc, char **argv); 533void x11_start_xephyr(int argc, char **argv);
534extern char *xephyr_screen;
534 535
535// ls.c 536// ls.c
536#define SANDBOX_FS_LS 0 537#define SANDBOX_FS_LS 0
diff --git a/src/firejail/x11.c b/src/firejail/x11.c
index 85141c265..0e97947d2 100644
--- a/src/firejail/x11.c
+++ b/src/firejail/x11.c
@@ -183,7 +183,7 @@ void x11_start_xephyr(int argc, char **argv) {
183 183
184 // start xephyr 184 // start xephyr
185 char *cmd1; 185 char *cmd1;
186 if (asprintf(&cmd1, "Xephyr -ac -br -noreset -screen 800x600 :%d", display) == -1) 186 if (asprintf(&cmd1, "Xephyr -ac -br -noreset -screen %s :%d", xephyr_screen, display) == -1)
187 errExit("asprintf"); 187 errExit("asprintf");
188 188
189 int len = 50; // DISPLAY... 189 int len = 50; // DISPLAY...