Skip to content

Commit

Permalink
Merge pull request netblue30#6109 from kmk3/netfilter-expand-macros
Browse files Browse the repository at this point in the history
feature: expand simple macros in more commands
  • Loading branch information
netblue30 committed Dec 4, 2023
2 parents 2033e98 + e69c1df commit 9e7b197
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 42 deletions.
40 changes: 4 additions & 36 deletions src/firejail/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1572,7 +1572,7 @@ int main(int argc, char **argv, char **envp) {
arg_trace = 1;
else if (strncmp(argv[i], "--trace=", 8) == 0) {
arg_trace = 1;
arg_tracefile = argv[i] + 8;
arg_tracefile = expand_macros(argv[i] + 8);
if (*arg_tracefile == '\0') {
fprintf(stderr, "Error: invalid trace option\n");
exit(1);
Expand All @@ -1582,13 +1582,6 @@ int main(int argc, char **argv, char **envp) {
fprintf(stderr, "Error: invalid file name %s\n", arg_tracefile);
exit(1);
}
// if the filename starts with ~, expand the home directory
if (*arg_tracefile == '~') {
char *tmp;
if (asprintf(&tmp, "%s%s", cfg.homedir, arg_tracefile + 1) == -1)
errExit("asprintf");
arg_tracefile = tmp;
}
}
else if (strcmp(argv[i], "--tracelog") == 0) {
if (checkcfg(CFG_TRACELOG))
Expand Down Expand Up @@ -1953,20 +1946,13 @@ int main(int argc, char **argv, char **envp) {
}

// extract chroot dirname
cfg.chrootdir = argv[i] + 9;
cfg.chrootdir = expand_macros(argv[i] + 9);
if (*cfg.chrootdir == '\0') {
fprintf(stderr, "Error: invalid chroot option\n");
exit(1);
}
invalid_filename(cfg.chrootdir, 0); // no globbing

// if the directory starts with ~, expand the home directory
if (*cfg.chrootdir == '~') {
char *tmp;
if (asprintf(&tmp, "%s%s", cfg.homedir, cfg.chrootdir + 1) == -1)
errExit("asprintf");
cfg.chrootdir = tmp;
}
// check chroot directory
fs_check_chroot_dir();
}
Expand Down Expand Up @@ -2748,16 +2734,7 @@ int main(int argc, char **argv, char **envp) {
else if (strncmp(argv[i], "--netfilter=", 12) == 0) {
if (checkcfg(CFG_NETWORK)) {
arg_netfilter = 1;
arg_netfilter_file = argv[i] + 12;

// expand tilde
if (*arg_netfilter_file == '~') {
char *tmp;
if (asprintf(&tmp, "%s%s", cfg.homedir, arg_netfilter_file + 1) == -1)
errExit("asprintf");
arg_netfilter_file = tmp;
}

arg_netfilter_file = expand_macros(argv[i] + 12);
check_netfilter_file(arg_netfilter_file);
}
else
Expand All @@ -2767,16 +2744,7 @@ int main(int argc, char **argv, char **envp) {
else if (strncmp(argv[i], "--netfilter6=", 13) == 0) {
if (checkcfg(CFG_NETWORK)) {
arg_netfilter6 = 1;
arg_netfilter6_file = argv[i] + 13;

// expand tilde
if (*arg_netfilter6_file == '~') {
char *tmp;
if (asprintf(&tmp, "%s%s", cfg.homedir, arg_netfilter6_file + 1) == -1)
errExit("asprintf");
arg_netfilter6_file = tmp;
}

arg_netfilter6_file = expand_macros(argv[i] + 13);
check_netfilter_file(arg_netfilter6_file);
}
else
Expand Down
8 changes: 2 additions & 6 deletions src/firejail/profile.c
Original file line number Diff line number Diff line change
Expand Up @@ -635,9 +635,7 @@ int profile_check_line(char *ptr, int lineno, const char *fname) {
#ifdef HAVE_NETWORK
if (checkcfg(CFG_NETWORK)) {
arg_netfilter = 1;
arg_netfilter_file = strdup(ptr + 10);
if (!arg_netfilter_file)
errExit("strdup");
arg_netfilter_file = expand_macros(ptr + 10);
check_netfilter_file(arg_netfilter_file);
}
else
Expand All @@ -649,9 +647,7 @@ int profile_check_line(char *ptr, int lineno, const char *fname) {
#ifdef HAVE_NETWORK
if (checkcfg(CFG_NETWORK)) {
arg_netfilter6 = 1;
arg_netfilter6_file = strdup(ptr + 11);
if (!arg_netfilter6_file)
errExit("strdup");
arg_netfilter6_file = expand_macros(ptr + 11);
check_netfilter_file(arg_netfilter6_file);
}
else
Expand Down

0 comments on commit 9e7b197

Please sign in to comment.