diff options
author | netblue30 <netblue30@yahoo.com> | 2018-08-28 13:04:13 -0400 |
---|---|---|
committer | netblue30 <netblue30@yahoo.com> | 2018-08-28 13:04:13 -0400 |
commit | 8ce3b7ab971d6ab02463fd6c7591a73465526cb1 (patch) | |
tree | 2df83450626433978a970dbae4fb38d84754600e /src/fbuilder/build_bin.c | |
parent | memory leaks (diff) | |
download | firejail-8ce3b7ab971d6ab02463fd6c7591a73465526cb1.tar.gz firejail-8ce3b7ab971d6ab02463fd6c7591a73465526cb1.tar.zst firejail-8ce3b7ab971d6ab02463fd6c7591a73465526cb1.zip |
fbuider cleanup
Diffstat (limited to 'src/fbuilder/build_bin.c')
-rw-r--r-- | src/fbuilder/build_bin.c | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/src/fbuilder/build_bin.c b/src/fbuilder/build_bin.c index 1b9343216..1230fb780 100644 --- a/src/fbuilder/build_bin.c +++ b/src/fbuilder/build_bin.c | |||
@@ -21,16 +21,15 @@ | |||
21 | 21 | ||
22 | static FileDB *bin_out = NULL; | 22 | static FileDB *bin_out = NULL; |
23 | 23 | ||
24 | static void process_bin(char *fname, FILE *fp) { | 24 | static void process_bin(const char *fname) { |
25 | assert(fname); | 25 | assert(fname); |
26 | assert(fp); | ||
27 | 26 | ||
28 | // process trace file | 27 | // process trace file |
29 | /* FILE *fp = fdopen(fd, "r"); */ | 28 | FILE *fp = fopen(fname, "r"); |
30 | /* if (!fp) { */ | 29 | if (!fp) { |
31 | /* fprintf(stderr, "Error: cannot open %s\n", fname); */ | 30 | fprintf(stderr, "Error: cannot open %s\n", fname); |
32 | /* exit(1); */ | 31 | exit(1); |
33 | /* } */ | 32 | } |
34 | 33 | ||
35 | char buf[MAX_BUF]; | 34 | char buf[MAX_BUF]; |
36 | while (fgets(buf, MAX_BUF, fp)) { | 35 | while (fgets(buf, MAX_BUF, fp)) { |
@@ -91,18 +90,16 @@ static void process_bin(char *fname, FILE *fp) { | |||
91 | bin_out = filedb_add(bin_out, ptr); | 90 | bin_out = filedb_add(bin_out, ptr); |
92 | } | 91 | } |
93 | 92 | ||
94 | /* fclose(fp); */ | 93 | fclose(fp); |
95 | } | 94 | } |
96 | 95 | ||
97 | 96 | ||
98 | // process fname, fname.1, fname.2, fname.3, fname.4, fname.5 | 97 | // process fname, fname.1, fname.2, fname.3, fname.4, fname.5 |
99 | void build_bin(char *fname, FILE *fp, FILE *fpo) { | 98 | void build_bin(const char *fname, FILE *fp) { |
100 | assert(fname); | 99 | assert(fname); |
101 | assert(fp); | ||
102 | assert(fpo); | ||
103 | 100 | ||
104 | // run fname | 101 | // run fname |
105 | process_bin(fname, fp); | 102 | process_bin(fname); |
106 | 103 | ||
107 | // run all the rest | 104 | // run all the rest |
108 | struct stat s; | 105 | struct stat s; |
@@ -112,24 +109,18 @@ void build_bin(char *fname, FILE *fp, FILE *fpo) { | |||
112 | if (asprintf(&newname, "%s.%d", fname, i) == -1) | 109 | if (asprintf(&newname, "%s.%d", fname, i) == -1) |
113 | errExit("asprintf"); | 110 | errExit("asprintf"); |
114 | if (stat(newname, &s) == 0) | 111 | if (stat(newname, &s) == 0) |
115 | { | 112 | process_bin(newname); |
116 | int nfd = open(newname, O_RDONLY); | ||
117 | FILE *nfp = fdopen(nfd, "r"); | ||
118 | process_bin(newname, nfp); | ||
119 | fclose(nfp); | ||
120 | unlink(newname); | ||
121 | } | ||
122 | free(newname); | 113 | free(newname); |
123 | } | 114 | } |
124 | 115 | ||
125 | if (bin_out) { | 116 | if (bin_out) { |
126 | fprintf(fpo, "private-bin "); | 117 | fprintf(fp, "private-bin "); |
127 | FileDB *ptr = bin_out; | 118 | FileDB *ptr = bin_out; |
128 | while (ptr) { | 119 | while (ptr) { |
129 | fprintf(fpo, "%s,", ptr->fname); | 120 | fprintf(fp, "%s,", ptr->fname); |
130 | ptr = ptr->next; | 121 | ptr = ptr->next; |
131 | } | 122 | } |
132 | fprintf(fpo, "\n"); | 123 | fprintf(fp, "\n"); |
133 | fprintf(fpo, "# private-lib\n"); | 124 | fprintf(fp, "# private-lib\n"); |
134 | } | 125 | } |
135 | } | 126 | } |