- patch from Denis Vlasenko to add and use bb_xopen3()
This commit is contained in:
@@ -179,20 +179,16 @@ crontab_main(int ac, char **av)
|
||||
char buf[1024];
|
||||
|
||||
snprintf(tmp, sizeof(tmp), TMPDIR "/crontab.%d", getpid());
|
||||
if ((fd = open(tmp, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600)) >= 0) {
|
||||
chown(tmp, getuid(), getgid());
|
||||
if ((fi = fopen(pas->pw_name, "r"))) {
|
||||
while ((n = fread(buf, 1, sizeof(buf), fi)) > 0)
|
||||
write(fd, buf, n);
|
||||
}
|
||||
EditFile(caller, tmp);
|
||||
remove(tmp);
|
||||
lseek(fd, 0L, 0);
|
||||
repFd = fd;
|
||||
} else {
|
||||
bb_error_msg_and_die("unable to create %s", tmp);
|
||||
fd = bb_xopen3(tmp, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600);
|
||||
chown(tmp, getuid(), getgid());
|
||||
if ((fi = fopen(pas->pw_name, "r"))) {
|
||||
while ((n = fread(buf, 1, sizeof(buf), fi)) > 0)
|
||||
write(fd, buf, n);
|
||||
}
|
||||
|
||||
EditFile(caller, tmp);
|
||||
remove(tmp);
|
||||
lseek(fd, 0L, 0);
|
||||
repFd = fd;
|
||||
}
|
||||
option = REPLACE;
|
||||
/* fall through */
|
||||
@@ -289,11 +285,8 @@ GetReplaceStream(const char *user, const char *file)
|
||||
if (ChangeUser(user, 0) < 0)
|
||||
exit(0);
|
||||
|
||||
fd = open(file, O_RDONLY);
|
||||
if (fd < 0) {
|
||||
bb_error_msg("unable to open %s", file);
|
||||
exit(0);
|
||||
}
|
||||
bb_default_error_retval = 0;
|
||||
fd = bb_xopen3(file, O_RDONLY, 0);
|
||||
buf[0] = 0;
|
||||
write(filedes[1], buf, 1);
|
||||
while ((n = read(fd, buf, sizeof(buf))) > 0) {
|
||||
|
@@ -101,8 +101,7 @@ int mt_main(int argc, char **argv)
|
||||
break;
|
||||
}
|
||||
|
||||
if ((fd = open(file, mode, 0)) < 0)
|
||||
bb_perror_msg_and_die("%s", file);
|
||||
fd = bb_xopen3(file, mode, 0);
|
||||
|
||||
switch (code->value) {
|
||||
case MTTELL:
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*-------------------------------------------------------------------------
|
||||
* Filename: xmodem.c
|
||||
* Version: $Id: rx.c,v 1.2 2004/03/15 08:28:46 andersen Exp $
|
||||
@@ -289,13 +290,8 @@ int rx_main(int argc, char **argv)
|
||||
bb_show_usage();
|
||||
|
||||
fn = argv[1];
|
||||
ttyfd = open("/dev/tty", O_RDWR);
|
||||
if (ttyfd < 0)
|
||||
bb_error_msg_and_die("%s: open on /dev/tty failed: %m\n", argv[0]);
|
||||
|
||||
filefd = open(fn, O_RDWR|O_CREAT|O_TRUNC, 0666);
|
||||
if (filefd < 0)
|
||||
bb_error_msg_and_die("%s: open on %s failed: %m\n", argv[0], fn);
|
||||
ttyfd = bb_xopen3("/dev/tty", O_RDWR, 0);
|
||||
filefd = bb_xopen3(fn, O_RDWR|O_CREAT|O_TRUNC, 0666);
|
||||
|
||||
if (tcgetattr(ttyfd, &tty) < 0)
|
||||
bb_error_msg_and_die("%s: tcgetattr failed: %m\n", argv[0]);
|
||||
|
Reference in New Issue
Block a user