Ricardo Mestre wrote: > Hi! > > After a quick grep on the tree I found a few places where open(2) is > still used with hardcoded numeric values. > > I sent this to Theo for reviewing, but he might not had the time for it > so here it goes:
When you send patches, can you base them in a single common directory? There's no way to apply this without running patch 5 times in 5 different directories. Thanks. > > Index: jobs.c > =================================================================== > RCS file: /cvs/src/bin/ksh/jobs.c,v > retrieving revision 1.51 > diff -u -p -u -r1.51 jobs.c > --- jobs.c 12 Nov 2015 04:04:31 -0000 1.51 > +++ jobs.c 12 Nov 2015 20:33:35 -0000 > @@ -520,7 +520,7 @@ exchild(struct op *t, int flags, volatil > setsig(&sigtraps[SIGQUIT], SIG_IGN, > SS_RESTORE_IGN|SS_FORCE); > if (!(flags & (XPIPEI | XCOPROC))) { > - int fd = open("/dev/null", 0); > + int fd = open("/dev/null", O_RDONLY); > if (fd != 0) { > (void) ksh_dup2(fd, 0, true); > close(fd); > Index: badsect.c > =================================================================== > RCS file: /cvs/src/sbin/badsect/badsect.c,v > retrieving revision 1.26 > diff -u -p -u -r1.26 badsect.c > --- badsect.c 20 Jan 2015 18:22:20 -0000 1.26 > +++ badsect.c 12 Nov 2015 20:34:07 -0000 > @@ -119,7 +119,7 @@ main(int argc, char *argv[]) > err(5, "Cannot find dev 0%o corresponding to %s", > stbuf.st_rdev, argv[1]); > > - if ((fsi = open(name, 0)) < 0) > + if ((fsi = open(name, O_RDONLY)) < 0) > err(6, "%s", name); > > fs = &sblock; > Index: main.c > =================================================================== > RCS file: /cvs/src/usr.sbin/mrouted/main.c,v > retrieving revision 1.27 > diff -u -p -u -r1.27 main.c > --- main.c 26 Oct 2015 10:08:15 -0000 1.27 > +++ main.c 12 Nov 2015 20:40:50 -0000 > @@ -132,14 +132,14 @@ usage: fprintf(stderr, > (void)close(0); > (void)close(1); > (void)close(2); > - (void)open("/", 0); > + (void)open("/", O_RDONLY); > (void)dup2(0, 1); > (void)dup2(0, 2); > #ifdef SYSV > (void)setpgrp(); > #else > #ifdef TIOCNOTTY > - t = open("/dev/tty", 2); > + t = open("/dev/tty", O_RDWR); > if (t >= 0) { > (void)ioctl(t, TIOCNOTTY, (char *)0); > (void)close(t); > Index: quot.c > =================================================================== > RCS file: /cvs/src/usr.sbin/quot/quot.c,v > retrieving revision 1.27 > diff -u -p -u -r1.27 quot.c > --- quot.c 20 Aug 2015 22:39:29 -0000 1.27 > +++ quot.c 12 Nov 2015 20:34:48 -0000 > @@ -561,7 +561,7 @@ quot(char *name, char *mp) > * XXX this is completely broken. Of course you can't read a > * directory, well, not anymore. How to fix this, though... > */ > - if ((fd = open(name, 0)) < 0) { > + if ((fd = open(name, O_RDONLY)) < 0) { > warn("%s", name); > return; > } > Index: ypserv.c > =================================================================== > RCS file: /cvs/src/usr.sbin/ypserv/ypserv/ypserv.c,v > retrieving revision 1.42 > diff -u -p -u -r1.42 ypserv.c > --- ypserv.c 26 Oct 2015 10:12:46 -0000 1.42 > +++ ypserv.c 12 Nov 2015 20:35:19 -0000 > @@ -451,10 +451,10 @@ main(int argc, char *argv[]) > if (pid) > exit(0); > closefrom(0); > - i = open("/dev/console", 2); > + i = open("/dev/console", O_RDWR); > (void) dup2(i, 1); > (void) dup2(i, 2); > - i = open("/dev/tty", 2); > + i = open("/dev/tty", O_RDWR); > if (i >= 0) { > (void) ioctl(i, TIOCNOTTY, NULL); > (void) close(i); > > Best regards, > Ricardo Mestre >