diff options
Diffstat (limited to 'src/firejail/checkcfg.c')
-rw-r--r-- | src/firejail/checkcfg.c | 14 |
1 files changed, 14 insertions, 0 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 | ||