aboutsummaryrefslogtreecommitdiffstats
path: root/src/firejail/checkcfg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/firejail/checkcfg.c')
-rw-r--r--src/firejail/checkcfg.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/firejail/checkcfg.c b/src/firejail/checkcfg.c
index dff892ea3..56ab7c932 100644
--- a/src/firejail/checkcfg.c
+++ b/src/firejail/checkcfg.c
@@ -27,6 +27,8 @@ static int initialized = 0;
27static int cfg_val[CFG_MAX]; 27static int cfg_val[CFG_MAX];
28char *xephyr_screen = "800x600"; 28char *xephyr_screen = "800x600";
29char *xephyr_extra_params = ""; 29char *xephyr_extra_params = "";
30char *xvfb_screen = "800x600x24";
31char *xvfb_extra_params = "";
30char *netfilter_default = NULL; 32char *netfilter_default = NULL;
31 33
32int checkcfg(int val) { 34int checkcfg(int val) {
@@ -234,6 +236,28 @@ int checkcfg(int val) {
234 errExit("strdup"); 236 errExit("strdup");
235 } 237 }
236 238
239 // Xvfb screen size
240 else if (strncmp(ptr, "xvfb-screen ", 12) == 0) {
241 // expecting three numbers separated by x's
242 unsigned int n1;
243 unsigned int n2;
244 unsigned int n3;
245 int rv = sscanf(ptr + 12, "%ux%ux%u", &n1, &n2, &n3);
246 if (rv != 3)
247 goto errout;
248 if (asprintf(&xvfb_screen, "%ux%ux%u", n1, n2, n3) == -1)
249 errExit("asprintf");
250 }
251
252 // Xvfb extra parameters
253 else if (strncmp(ptr, "xvfb-extra-params ", 18) == 0) {
254 if (*xvfb_extra_params != '\0')
255 goto errout;
256 xvfb_extra_params = strdup(ptr + 18);
257 if (!xvfb_extra_params)
258 errExit("strdup");
259 }
260
237 // quiet by default 261 // quiet by default
238 else if (strncmp(ptr, "quiet-by-default ", 17) == 0) { 262 else if (strncmp(ptr, "quiet-by-default ", 17) == 0) {
239 if (strcmp(ptr + 17, "yes") == 0) 263 if (strcmp(ptr + 17, "yes") == 0)