diff options
author | netblue30 <netblue30@yahoo.com> | 2016-03-28 20:00:57 -0400 |
---|---|---|
committer | netblue30 <netblue30@yahoo.com> | 2016-03-28 20:00:57 -0400 |
commit | aae3576b007080e3aeb9ab662c4742b18ad6e3fd (patch) | |
tree | 5b83a2d5697bcfa01c9e68e1c7bcd45e46dcfaba /src | |
parent | pulseaudio fix (diff) | |
download | firejail-aae3576b007080e3aeb9ab662c4742b18ad6e3fd.tar.gz firejail-aae3576b007080e3aeb9ab662c4742b18ad6e3fd.tar.zst firejail-aae3576b007080e3aeb9ab662c4742b18ad6e3fd.zip |
x11 work
Diffstat (limited to 'src')
-rw-r--r-- | src/firejail/checkcfg.c | 14 | ||||
-rw-r--r-- | src/firejail/firejail.h | 1 | ||||
-rw-r--r-- | src/firejail/x11.c | 2 |
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 | ||
25 | static int initialized = 0; | 25 | static int initialized = 0; |
26 | static int cfg_val[CFG_MAX]; | 26 | static int cfg_val[CFG_MAX]; |
27 | char *xephyr_screen = "800x600"; | ||
27 | 28 | ||
28 | int checkcfg(int val) { | 29 | int 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); | |||
531 | void x11_start(int argc, char **argv); | 531 | void x11_start(int argc, char **argv); |
532 | void x11_start_xpra(int argc, char **argv); | 532 | void x11_start_xpra(int argc, char **argv); |
533 | void x11_start_xephyr(int argc, char **argv); | 533 | void x11_start_xephyr(int argc, char **argv); |
534 | extern 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... |