aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/firecfg/firecfg.config3
-rw-r--r--src/firejail/firejail.h8
-rw-r--r--src/firejail/util.c31
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
25PCSX2 25PCSX2
26PPSSPPQt 26PPSSPPQt
27PPSSPPSDL 27PPSSPPSDL
28Postman
28QMediathekView 29QMediathekView
29QOwnNotes 30QOwnNotes
30Screenshot 31Screenshot
@@ -421,6 +422,7 @@ ipcalc
421ipcalc-ng 422ipcalc-ng
422iridium 423iridium
423iridium-browser 424iridium-browser
425jami
424jd-gui 426jd-gui
425jdownloader 427jdownloader
426jerry 428jerry
@@ -682,6 +684,7 @@ plv
682pngquant 684pngquant
683polari 685polari
684porn-cli 686porn-cli
687postman
685ppsspp 688ppsspp
686pragha 689pragha
687presentations18 690presentations18
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
528int invalid_name(const char *name);
529void errLogExit(char* fmt, ...) __attribute__((noreturn)); 528void errLogExit(char* fmt, ...) __attribute__((noreturn));
530void fwarning(char* fmt, ...); 529void fwarning(char* fmt, ...);
531void fmessage(char* fmt, ...); 530void fmessage(char* fmt, ...);
@@ -581,6 +580,13 @@ int has_handler(pid_t pid, int signal);
581void enter_network_namespace(pid_t pid); 580void enter_network_namespace(pid_t pid);
582int read_pid(const char *name, pid_t *pid); 581int read_pid(const char *name, pid_t *pid);
583pid_t require_pid(const char *name); 582pid_t require_pid(const char *name);
583int ascii_isalnum(unsigned char c);
584int ascii_isalpha(unsigned char c);
585int ascii_isdigit(unsigned char c);
586int ascii_islower(unsigned char c);
587int ascii_isupper(unsigned char c);
588int ascii_isxdigit(unsigned char c);
589int invalid_name(const char *name);
584void check_homedir(const char *dir); 590void 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
1451int ascii_isalnum(unsigned char c) {
1452 return (ascii_isalpha(c) || ascii_isdigit(c));
1453}
1454
1455int ascii_isalpha(unsigned char c) {
1456 return (ascii_islower(c) || ascii_isupper(c));
1457}
1458
1459int ascii_isdigit(unsigned char c) {
1460 return (c >= '0' && c <= '9');
1461}
1462
1463int ascii_islower(unsigned char c) {
1464 return (c >= 'a' && c <= 'z');
1465}
1466
1467int ascii_isupper(unsigned char c) {
1468 return (c >= 'A' && c <= 'Z');
1469}
1470
1471int 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
1452int invalid_name(const char *name) { 1479int 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 }