diff options
author | smitsohu <smitsohu@gmail.com> | 2018-08-15 17:41:37 +0200 |
---|---|---|
committer | smitsohu <smitsohu@gmail.com> | 2018-08-15 17:41:37 +0200 |
commit | 2dc3371a071aec665ac34e04bc53a0ef2ab59fb2 (patch) | |
tree | 7efed375f737694ed1a38e378d4a730045074abd /src/firejail/fs_lib.c | |
parent | wireshark.profile: enable apparmor (diff) | |
download | firejail-2dc3371a071aec665ac34e04bc53a0ef2ab59fb2.tar.gz firejail-2dc3371a071aec665ac34e04bc53a0ef2ab59fb2.tar.zst firejail-2dc3371a071aec665ac34e04bc53a0ef2ab59fb2.zip |
fix NP deref
private-home and private-bin are included just for consistency
Diffstat (limited to 'src/firejail/fs_lib.c')
-rw-r--r-- | src/firejail/fs_lib.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/firejail/fs_lib.c b/src/firejail/fs_lib.c index 77c9a0cf5..a607280a0 100644 --- a/src/firejail/fs_lib.c +++ b/src/firejail/fs_lib.c | |||
@@ -196,6 +196,8 @@ static void load_library(const char *fname) { | |||
196 | } | 196 | } |
197 | 197 | ||
198 | static void install_list_entry(const char *lib) { | 198 | static void install_list_entry(const char *lib) { |
199 | assert(lib); | ||
200 | |||
199 | // filename check | 201 | // filename check |
200 | int len = strlen(lib); | 202 | int len = strlen(lib); |
201 | if (strcspn(lib, "\\&!?\"'<>%^(){}[];,") != (size_t)len || | 203 | if (strcspn(lib, "\\&!?\"'<>%^(){}[];,") != (size_t)len || |
@@ -255,6 +257,10 @@ void fslib_install_list(const char *lib_list) { | |||
255 | errExit("strdup"); | 257 | errExit("strdup"); |
256 | 258 | ||
257 | char *ptr = strtok(dlist, ","); | 259 | char *ptr = strtok(dlist, ","); |
260 | if (!ptr) { | ||
261 | fprintf(stderr, "Error: invalid private-lib argument\n"); | ||
262 | exit(1); | ||
263 | } | ||
258 | install_list_entry(ptr); | 264 | install_list_entry(ptr); |
259 | 265 | ||
260 | while ((ptr = strtok(NULL, ",")) != NULL) | 266 | while ((ptr = strtok(NULL, ",")) != NULL) |