aboutsummaryrefslogtreecommitdiffstats
path: root/src
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 /src
parentpulseaudio fix (diff)
downloadfirejail-aae3576b007080e3aeb9ab662c4742b18ad6e3fd.tar.gz
firejail-aae3576b007080e3aeb9ab662c4742b18ad6e3fd.tar.zst
firejail-aae3576b007080e3aeb9ab662c4742b18ad6e3fd.zip
x11 work
Diffstat (limited to 'src')
-rw-r--r--src/firejail/checkcfg.c14
-rw-r--r--src/firejail/firejail.h1
-rw-r--r--src/firejail/x11.c2
3 files changed, 16 insertions, 1 deletions
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...