Skip to content

Commit 9e7b197

Browse files
authored
Merge pull request #6109 from kmk3/netfilter-expand-macros
feature: expand simple macros in more commands
2 parents 2033e98 + e69c1df commit 9e7b197

File tree

2 files changed

+6
-42
lines changed

2 files changed

+6
-42
lines changed

src/firejail/main.c

+4-36
Original file line numberDiff line numberDiff line change
@@ -1572,7 +1572,7 @@ int main(int argc, char **argv, char **envp) {
15721572
arg_trace = 1;
15731573
else if (strncmp(argv[i], "--trace=", 8) == 0) {
15741574
arg_trace = 1;
1575-
arg_tracefile = argv[i] + 8;
1575+
arg_tracefile = expand_macros(argv[i] + 8);
15761576
if (*arg_tracefile == '\0') {
15771577
fprintf(stderr, "Error: invalid trace option\n");
15781578
exit(1);
@@ -1582,13 +1582,6 @@ int main(int argc, char **argv, char **envp) {
15821582
fprintf(stderr, "Error: invalid file name %s\n", arg_tracefile);
15831583
exit(1);
15841584
}
1585-
// if the filename starts with ~, expand the home directory
1586-
if (*arg_tracefile == '~') {
1587-
char *tmp;
1588-
if (asprintf(&tmp, "%s%s", cfg.homedir, arg_tracefile + 1) == -1)
1589-
errExit("asprintf");
1590-
arg_tracefile = tmp;
1591-
}
15921585
}
15931586
else if (strcmp(argv[i], "--tracelog") == 0) {
15941587
if (checkcfg(CFG_TRACELOG))
@@ -1953,20 +1946,13 @@ int main(int argc, char **argv, char **envp) {
19531946
}
19541947

19551948
// extract chroot dirname
1956-
cfg.chrootdir = argv[i] + 9;
1949+
cfg.chrootdir = expand_macros(argv[i] + 9);
19571950
if (*cfg.chrootdir == '\0') {
19581951
fprintf(stderr, "Error: invalid chroot option\n");
19591952
exit(1);
19601953
}
19611954
invalid_filename(cfg.chrootdir, 0); // no globbing
19621955

1963-
// if the directory starts with ~, expand the home directory
1964-
if (*cfg.chrootdir == '~') {
1965-
char *tmp;
1966-
if (asprintf(&tmp, "%s%s", cfg.homedir, cfg.chrootdir + 1) == -1)
1967-
errExit("asprintf");
1968-
cfg.chrootdir = tmp;
1969-
}
19701956
// check chroot directory
19711957
fs_check_chroot_dir();
19721958
}
@@ -2748,16 +2734,7 @@ int main(int argc, char **argv, char **envp) {
27482734
else if (strncmp(argv[i], "--netfilter=", 12) == 0) {
27492735
if (checkcfg(CFG_NETWORK)) {
27502736
arg_netfilter = 1;
2751-
arg_netfilter_file = argv[i] + 12;
2752-
2753-
// expand tilde
2754-
if (*arg_netfilter_file == '~') {
2755-
char *tmp;
2756-
if (asprintf(&tmp, "%s%s", cfg.homedir, arg_netfilter_file + 1) == -1)
2757-
errExit("asprintf");
2758-
arg_netfilter_file = tmp;
2759-
}
2760-
2737+
arg_netfilter_file = expand_macros(argv[i] + 12);
27612738
check_netfilter_file(arg_netfilter_file);
27622739
}
27632740
else
@@ -2767,16 +2744,7 @@ int main(int argc, char **argv, char **envp) {
27672744
else if (strncmp(argv[i], "--netfilter6=", 13) == 0) {
27682745
if (checkcfg(CFG_NETWORK)) {
27692746
arg_netfilter6 = 1;
2770-
arg_netfilter6_file = argv[i] + 13;
2771-
2772-
// expand tilde
2773-
if (*arg_netfilter6_file == '~') {
2774-
char *tmp;
2775-
if (asprintf(&tmp, "%s%s", cfg.homedir, arg_netfilter6_file + 1) == -1)
2776-
errExit("asprintf");
2777-
arg_netfilter6_file = tmp;
2778-
}
2779-
2747+
arg_netfilter6_file = expand_macros(argv[i] + 13);
27802748
check_netfilter_file(arg_netfilter6_file);
27812749
}
27822750
else

src/firejail/profile.c

+2-6
Original file line numberDiff line numberDiff line change
@@ -635,9 +635,7 @@ int profile_check_line(char *ptr, int lineno, const char *fname) {
635635
#ifdef HAVE_NETWORK
636636
if (checkcfg(CFG_NETWORK)) {
637637
arg_netfilter = 1;
638-
arg_netfilter_file = strdup(ptr + 10);
639-
if (!arg_netfilter_file)
640-
errExit("strdup");
638+
arg_netfilter_file = expand_macros(ptr + 10);
641639
check_netfilter_file(arg_netfilter_file);
642640
}
643641
else
@@ -649,9 +647,7 @@ int profile_check_line(char *ptr, int lineno, const char *fname) {
649647
#ifdef HAVE_NETWORK
650648
if (checkcfg(CFG_NETWORK)) {
651649
arg_netfilter6 = 1;
652-
arg_netfilter6_file = strdup(ptr + 11);
653-
if (!arg_netfilter6_file)
654-
errExit("strdup");
650+
arg_netfilter6_file = expand_macros(ptr + 11);
655651
check_netfilter_file(arg_netfilter6_file);
656652
}
657653
else

0 commit comments

Comments
 (0)