From 619e58ea75693bdf446c11aaffbfdfbb63d75f53 Mon Sep 17 00:00:00 2001 From: netblue30 Date: Fri, 22 Dec 2023 18:22:33 -0500 Subject: fix /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games macro init --- src/firejail/paths.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/firejail/paths.c b/src/firejail/paths.c index fea842d93..7fed7bb80 100644 --- a/src/firejail/paths.c +++ b/src/firejail/paths.c @@ -76,8 +76,12 @@ static void init_paths(void) { if (bin_symlink > 0) { if (strcmp(elt, "/bin") == 0 || strcmp(elt, "/usr/bin") == 0) bin_symlink++; - if (bin_symlink == 3) + if (bin_symlink == 3) { + bin_symlink = 0; + if (arg_debug) + printf("...skip path %s\n", elt); goto skip; + } } // filter out duplicate entries @@ -85,14 +89,19 @@ static void init_paths(void) { if (strcmp(elt, paths[j]) == 0) goto skip; + if (arg_debug) + printf("Add path entry %s\n", elt); paths[i++] = elt; if (len > longest_path_elt) longest_path_elt = len; - skip:; +skip:; } - assert(paths[i] == NULL); + path_cnt = i; + if (arg_debug) + printf("Number of path entries: %d\n", path_cnt); + // path_cnt may be too big now, if entries were skipped above path_cnt = i+1; } -- cgit v1.2.3-54-g00ecf