diff options
author | netblue30 <netblue30@yahoo.com> | 2017-01-12 20:10:17 -0500 |
---|---|---|
committer | netblue30 <netblue30@yahoo.com> | 2017-01-12 20:10:17 -0500 |
commit | 5440bc47971bfbe0db570283973bafb0b2486e69 (patch) | |
tree | 54e9b95e20e40c64b82768d05439be58447b85bf /src/firejail/fs_mkdir.c | |
parent | Gentoo compile fix (diff) | |
download | firejail-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.c | 29 |
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 | |||
142 | doexit: | 117 | doexit: |
143 | free(expanded); | 118 | free(expanded); |
144 | } | 119 | } |