aboutsummaryrefslogtreecommitdiffstats
path: root/src/firejail/fs_mkdir.c
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2017-01-12 20:10:17 -0500
committerLibravatar netblue30 <netblue30@yahoo.com>2017-01-12 20:10:17 -0500
commit5440bc47971bfbe0db570283973bafb0b2486e69 (patch)
tree54e9b95e20e40c64b82768d05439be58447b85bf /src/firejail/fs_mkdir.c
parentGentoo compile fix (diff)
downloadfirejail-5440bc47971bfbe0db570283973bafb0b2486e69.tar.gz
firejail-5440bc47971bfbe0db570283973bafb0b2486e69.tar.zst
firejail-5440bc47971bfbe0db570283973bafb0b2486e69.zip
cleanup
Diffstat (limited to 'src/firejail/fs_mkdir.c')
-rw-r--r--src/firejail/fs_mkdir.c29
1 files changed, 2 insertions, 27 deletions
diff --git a/src/firejail/fs_mkdir.c b/src/firejail/fs_mkdir.c
index 5b6ceae90..d29f58a58 100644
--- a/src/firejail/fs_mkdir.c
+++ b/src/firejail/fs_mkdir.c
@@ -112,33 +112,8 @@ void fs_mkfile(const char *name) {
112 } 112 }
113 113
114 // create file 114 // create file
115 pid_t child = fork(); 115 touch_file_as_user(expanded, getuid(), getgid(), 0600);
116 if (child < 0) 116
117 errExit("fork");
118 if (child == 0) {
119 // drop privileges
120 drop_privs(0);
121
122 /* coverity[toctou] */
123 FILE *fp = fopen(expanded, "w");
124 if (!fp)
125 fprintf(stderr, "Warning: cannot create %s file\n", expanded);
126 else {
127 int fd = fileno(fp);
128 if (fd == -1)
129 errExit("fileno");
130 int rv = fchmod(fd, 0600);
131 (void) rv;
132 fclose(fp);
133 }
134#ifdef HAVE_GCOV
135 __gcov_flush();
136#endif
137 _exit(0);
138 }
139 // wait for the child to finish
140 waitpid(child, NULL, 0);
141
142doexit: 117doexit:
143 free(expanded); 118 free(expanded);
144} 119}