diff options
Diffstat (limited to 'src/firejail/main.c')
-rw-r--r-- | src/firejail/main.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/firejail/main.c b/src/firejail/main.c index 57fe4fb22..02fcb77d7 100644 --- a/src/firejail/main.c +++ b/src/firejail/main.c | |||
@@ -2172,11 +2172,24 @@ int main(int argc, char **argv, char **envp) { | |||
2172 | // hostname, etc | 2172 | // hostname, etc |
2173 | //************************************* | 2173 | //************************************* |
2174 | else if (strncmp(argv[i], "--name=", 7) == 0) { | 2174 | else if (strncmp(argv[i], "--name=", 7) == 0) { |
2175 | int only_numbers = 1; | ||
2175 | cfg.name = argv[i] + 7; | 2176 | cfg.name = argv[i] + 7; |
2176 | if (strlen(cfg.name) == 0) { | 2177 | if (strlen(cfg.name) == 0) { |
2177 | fprintf(stderr, "Error: please provide a name for sandbox\n"); | 2178 | fprintf(stderr, "Error: please provide a name for sandbox\n"); |
2178 | return 1; | 2179 | return 1; |
2179 | } | 2180 | } |
2181 | const char *c = cfg.name; | ||
2182 | while (*c) { | ||
2183 | if (!isdigit(*c)) { | ||
2184 | only_numbers = 0; | ||
2185 | break; | ||
2186 | } | ||
2187 | ++c; | ||
2188 | } | ||
2189 | if (only_numbers) { | ||
2190 | fprintf(stderr, "Error: invalid sandbox name: it only contains digits\n"); | ||
2191 | return 1; | ||
2192 | } | ||
2180 | } | 2193 | } |
2181 | else if (strncmp(argv[i], "--hostname=", 11) == 0) { | 2194 | else if (strncmp(argv[i], "--hostname=", 11) == 0) { |
2182 | cfg.hostname = argv[i] + 11; | 2195 | cfg.hostname = argv[i] + 11; |