aboutsummaryrefslogtreecommitdiffstats
path: root/src/fbuilder/build_bin.c
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2018-08-28 13:04:13 -0400
committerLibravatar netblue30 <netblue30@yahoo.com>2018-08-28 13:04:13 -0400
commit8ce3b7ab971d6ab02463fd6c7591a73465526cb1 (patch)
tree2df83450626433978a970dbae4fb38d84754600e /src/fbuilder/build_bin.c
parentmemory leaks (diff)
downloadfirejail-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.c37
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
22static FileDB *bin_out = NULL; 22static FileDB *bin_out = NULL;
23 23
24static void process_bin(char *fname, FILE *fp) { 24static 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
99void build_bin(char *fname, FILE *fp, FILE *fpo) { 98void 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}