diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/firecfg/firecfg.config | 3 | ||||
-rw-r--r-- | src/firejail/firejail.h | 8 | ||||
-rw-r--r-- | src/firejail/util.c | 31 |
3 files changed, 39 insertions, 3 deletions
diff --git a/src/firecfg/firecfg.config b/src/firecfg/firecfg.config index 2e176d2cd..2b4785fd4 100644 --- a/src/firecfg/firecfg.config +++ b/src/firecfg/firecfg.config | |||
@@ -25,6 +25,7 @@ Natron | |||
25 | PCSX2 | 25 | PCSX2 |
26 | PPSSPPQt | 26 | PPSSPPQt |
27 | PPSSPPSDL | 27 | PPSSPPSDL |
28 | Postman | ||
28 | QMediathekView | 29 | QMediathekView |
29 | QOwnNotes | 30 | QOwnNotes |
30 | Screenshot | 31 | Screenshot |
@@ -421,6 +422,7 @@ ipcalc | |||
421 | ipcalc-ng | 422 | ipcalc-ng |
422 | iridium | 423 | iridium |
423 | iridium-browser | 424 | iridium-browser |
425 | jami | ||
424 | jd-gui | 426 | jd-gui |
425 | jdownloader | 427 | jdownloader |
426 | jerry | 428 | jerry |
@@ -682,6 +684,7 @@ plv | |||
682 | pngquant | 684 | pngquant |
683 | polari | 685 | polari |
684 | porn-cli | 686 | porn-cli |
687 | postman | ||
685 | ppsspp | 688 | ppsspp |
686 | pragha | 689 | pragha |
687 | presentations18 | 690 | presentations18 |
diff --git a/src/firejail/firejail.h b/src/firejail/firejail.h index 02315cfc2..2cde75463 100644 --- a/src/firejail/firejail.h +++ b/src/firejail/firejail.h | |||
@@ -525,7 +525,6 @@ int macro_id(const char *name); | |||
525 | 525 | ||
526 | 526 | ||
527 | // util.c | 527 | // util.c |
528 | int invalid_name(const char *name); | ||
529 | void errLogExit(char* fmt, ...) __attribute__((noreturn)); | 528 | void errLogExit(char* fmt, ...) __attribute__((noreturn)); |
530 | void fwarning(char* fmt, ...); | 529 | void fwarning(char* fmt, ...); |
531 | void fmessage(char* fmt, ...); | 530 | void fmessage(char* fmt, ...); |
@@ -581,6 +580,13 @@ int has_handler(pid_t pid, int signal); | |||
581 | void enter_network_namespace(pid_t pid); | 580 | void enter_network_namespace(pid_t pid); |
582 | int read_pid(const char *name, pid_t *pid); | 581 | int read_pid(const char *name, pid_t *pid); |
583 | pid_t require_pid(const char *name); | 582 | pid_t require_pid(const char *name); |
583 | int ascii_isalnum(unsigned char c); | ||
584 | int ascii_isalpha(unsigned char c); | ||
585 | int ascii_isdigit(unsigned char c); | ||
586 | int ascii_islower(unsigned char c); | ||
587 | int ascii_isupper(unsigned char c); | ||
588 | int ascii_isxdigit(unsigned char c); | ||
589 | int invalid_name(const char *name); | ||
584 | void check_homedir(const char *dir); | 590 | void check_homedir(const char *dir); |
585 | 591 | ||
586 | // Get info regarding the last kernel mount operation from /proc/self/mountinfo | 592 | // Get info regarding the last kernel mount operation from /proc/self/mountinfo |
diff --git a/src/firejail/util.c b/src/firejail/util.c index cda99e432..b2a0c85f1 100644 --- a/src/firejail/util.c +++ b/src/firejail/util.c | |||
@@ -1448,15 +1448,42 @@ static int has_link(const char *dir) { | |||
1448 | return 0; | 1448 | return 0; |
1449 | } | 1449 | } |
1450 | 1450 | ||
1451 | int ascii_isalnum(unsigned char c) { | ||
1452 | return (ascii_isalpha(c) || ascii_isdigit(c)); | ||
1453 | } | ||
1454 | |||
1455 | int ascii_isalpha(unsigned char c) { | ||
1456 | return (ascii_islower(c) || ascii_isupper(c)); | ||
1457 | } | ||
1458 | |||
1459 | int ascii_isdigit(unsigned char c) { | ||
1460 | return (c >= '0' && c <= '9'); | ||
1461 | } | ||
1462 | |||
1463 | int ascii_islower(unsigned char c) { | ||
1464 | return (c >= 'a' && c <= 'z'); | ||
1465 | } | ||
1466 | |||
1467 | int ascii_isupper(unsigned char c) { | ||
1468 | return (c >= 'A' && c <= 'Z'); | ||
1469 | } | ||
1470 | |||
1471 | int ascii_isxdigit(unsigned char c) { | ||
1472 | int ret = (ascii_isdigit(c) || | ||
1473 | (c >= 'a' && c <= 'f') || | ||
1474 | (c >= 'A' && c <= 'F')); | ||
1475 | return ret; | ||
1476 | } | ||
1477 | |||
1451 | // allow strict ASCII letters and numbers; names with only numbers are rejected; spaces are rejected | 1478 | // allow strict ASCII letters and numbers; names with only numbers are rejected; spaces are rejected |
1452 | int invalid_name(const char *name) { | 1479 | int invalid_name(const char *name) { |
1453 | const char *c = name; | 1480 | const char *c = name; |
1454 | 1481 | ||
1455 | int only_numbers = 1; | 1482 | int only_numbers = 1; |
1456 | while (*c) { | 1483 | while (*c) { |
1457 | if (!isalnum(*c)) | 1484 | if (!ascii_isalnum(*c)) |
1458 | return 1; | 1485 | return 1; |
1459 | if (!isdigit(*c)) | 1486 | if (!ascii_isdigit(*c)) |
1460 | only_numbers = 0; | 1487 | only_numbers = 0; |
1461 | ++c; | 1488 | ++c; |
1462 | } | 1489 | } |