From aae3576b007080e3aeb9ab662c4742b18ad6e3fd Mon Sep 17 00:00:00 2001 From: netblue30 Date: Mon, 28 Mar 2016 20:00:57 -0400 Subject: x11 work --- src/firejail/checkcfg.c | 14 ++++++++++++++ src/firejail/firejail.h | 1 + src/firejail/x11.c | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src') 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 @@ static int initialized = 0; static int cfg_val[CFG_MAX]; +char *xephyr_screen = "800x600"; int checkcfg(int val) { EUID_ASSERT(); @@ -132,8 +133,21 @@ int checkcfg(int val) { else goto errout; } + + // Xephyr screen size + else if (strncmp(ptr, "xephyr-screen ", 14) == 0) { + // expecting two numbers and an x between them + int n1; + int n2; + int rv = sscanf(ptr + 14, "%dx%d", &n1, &n2); + if (rv != 2) + goto errout; + if (asprintf(&xephyr_screen, "%dx%d", n1, n2) == -1) + errExit("asprintf"); + } else goto errout; + free(ptr); } 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); void x11_start(int argc, char **argv); void x11_start_xpra(int argc, char **argv); void x11_start_xephyr(int argc, char **argv); +extern char *xephyr_screen; // ls.c #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) { // start xephyr char *cmd1; - if (asprintf(&cmd1, "Xephyr -ac -br -noreset -screen 800x600 :%d", display) == -1) + if (asprintf(&cmd1, "Xephyr -ac -br -noreset -screen %s :%d", xephyr_screen, display) == -1) errExit("asprintf"); int len = 50; // DISPLAY... -- cgit v1.2.3-54-g00ecf