aboutsummaryrefslogtreecommitdiffstats
path: root/src/firejail/fs_lib.c
diff options
context:
space:
mode:
authorLibravatar smitsohu <smitsohu@gmail.com>2018-08-15 17:41:37 +0200
committerLibravatar smitsohu <smitsohu@gmail.com>2018-08-15 17:41:37 +0200
commit2dc3371a071aec665ac34e04bc53a0ef2ab59fb2 (patch)
tree7efed375f737694ed1a38e378d4a730045074abd /src/firejail/fs_lib.c
parentwireshark.profile: enable apparmor (diff)
downloadfirejail-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.c6
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
198static void install_list_entry(const char *lib) { 198static 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)