diff options
Diffstat (limited to 'miscutils/crontab.c')
-rw-r--r-- | miscutils/crontab.c | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/miscutils/crontab.c b/miscutils/crontab.c index 703d01ecc..1b2f46f3a 100644 --- a/miscutils/crontab.c +++ b/miscutils/crontab.c | |||
@@ -179,20 +179,16 @@ crontab_main(int ac, char **av) | |||
179 | char buf[1024]; | 179 | char buf[1024]; |
180 | 180 | ||
181 | snprintf(tmp, sizeof(tmp), TMPDIR "/crontab.%d", getpid()); | 181 | snprintf(tmp, sizeof(tmp), TMPDIR "/crontab.%d", getpid()); |
182 | if ((fd = open(tmp, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600)) >= 0) { | 182 | fd = bb_xopen3(tmp, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600); |
183 | chown(tmp, getuid(), getgid()); | 183 | chown(tmp, getuid(), getgid()); |
184 | if ((fi = fopen(pas->pw_name, "r"))) { | 184 | if ((fi = fopen(pas->pw_name, "r"))) { |
185 | while ((n = fread(buf, 1, sizeof(buf), fi)) > 0) | 185 | while ((n = fread(buf, 1, sizeof(buf), fi)) > 0) |
186 | write(fd, buf, n); | 186 | write(fd, buf, n); |
187 | } | ||
188 | EditFile(caller, tmp); | ||
189 | remove(tmp); | ||
190 | lseek(fd, 0L, 0); | ||
191 | repFd = fd; | ||
192 | } else { | ||
193 | bb_error_msg_and_die("unable to create %s", tmp); | ||
194 | } | 187 | } |
195 | 188 | EditFile(caller, tmp); | |
189 | remove(tmp); | ||
190 | lseek(fd, 0L, 0); | ||
191 | repFd = fd; | ||
196 | } | 192 | } |
197 | option = REPLACE; | 193 | option = REPLACE; |
198 | /* fall through */ | 194 | /* fall through */ |
@@ -289,11 +285,8 @@ GetReplaceStream(const char *user, const char *file) | |||
289 | if (ChangeUser(user, 0) < 0) | 285 | if (ChangeUser(user, 0) < 0) |
290 | exit(0); | 286 | exit(0); |
291 | 287 | ||
292 | fd = open(file, O_RDONLY); | 288 | bb_default_error_retval = 0; |
293 | if (fd < 0) { | 289 | fd = bb_xopen3(file, O_RDONLY, 0); |
294 | bb_error_msg("unable to open %s", file); | ||
295 | exit(0); | ||
296 | } | ||
297 | buf[0] = 0; | 290 | buf[0] = 0; |
298 | write(filedes[1], buf, 1); | 291 | write(filedes[1], buf, 1); |
299 | while ((n = read(fd, buf, sizeof(buf))) > 0) { | 292 | while ((n = read(fd, buf, sizeof(buf))) > 0) { |