diff options
| author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-08-19 13:42:08 +0000 |
|---|---|---|
| committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-08-19 13:42:08 +0000 |
| commit | d37f22225b4d10b84bbc4f6cee2e26d9f9b80fac (patch) | |
| tree | 732f39f3a15dcb56986ffd3900ab2fe3c46d0338 /loginutils | |
| parent | b9c02dd791041a4c3b87cb38354268893d739bd0 (diff) | |
| download | busybox-w32-d37f22225b4d10b84bbc4f6cee2e26d9f9b80fac.tar.gz busybox-w32-d37f22225b4d10b84bbc4f6cee2e26d9f9b80fac.tar.bz2 busybox-w32-d37f22225b4d10b84bbc4f6cee2e26d9f9b80fac.zip | |
libbb,crond,lash: fix getopt32 (don't know how it managed to slip through)
*: fcntl(fd, F_GETFL) doesn't require third parameter at all.
Diffstat (limited to 'loginutils')
| -rw-r--r-- | loginutils/getty.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/loginutils/getty.c b/loginutils/getty.c index 0c000666e..db8d7cef5 100644 --- a/loginutils/getty.c +++ b/loginutils/getty.c | |||
| @@ -232,13 +232,11 @@ static void open_tty(const char *tty, struct termios *tp, int local) | |||
| 232 | int chdir_to_root = 0; | 232 | int chdir_to_root = 0; |
| 233 | 233 | ||
| 234 | /* Set up new standard input, unless we are given an already opened port. */ | 234 | /* Set up new standard input, unless we are given an already opened port. */ |
| 235 | |||
| 236 | if (NOT_LONE_DASH(tty)) { | 235 | if (NOT_LONE_DASH(tty)) { |
| 237 | struct stat st; | 236 | struct stat st; |
| 238 | int fd; | 237 | int fd; |
| 239 | 238 | ||
| 240 | /* Sanity checks... */ | 239 | /* Sanity checks... */ |
| 241 | |||
| 242 | xchdir("/dev"); | 240 | xchdir("/dev"); |
| 243 | chdir_to_root = 1; | 241 | chdir_to_root = 1; |
| 244 | xstat(tty, &st); | 242 | xstat(tty, &st); |
| @@ -246,18 +244,17 @@ static void open_tty(const char *tty, struct termios *tp, int local) | |||
| 246 | bb_error_msg_and_die("%s: not a character device", tty); | 244 | bb_error_msg_and_die("%s: not a character device", tty); |
| 247 | 245 | ||
| 248 | /* Open the tty as standard input. */ | 246 | /* Open the tty as standard input. */ |
| 249 | |||
| 250 | debug("open(2)\n"); | 247 | debug("open(2)\n"); |
| 251 | fd = xopen(tty, O_RDWR | O_NONBLOCK); | 248 | fd = xopen(tty, O_RDWR | O_NONBLOCK); |
| 252 | xdup2(fd, 0); | 249 | xdup2(fd, 0); |
| 253 | while (fd > 2) close(fd--); | 250 | while (fd > 2) |
| 251 | close(fd--); | ||
| 254 | } else { | 252 | } else { |
| 255 | /* | 253 | /* |
| 256 | * Standard input should already be connected to an open port. Make | 254 | * Standard input should already be connected to an open port. Make |
| 257 | * sure it is open for read/write. | 255 | * sure it is open for read/write. |
| 258 | */ | 256 | */ |
| 259 | 257 | if ((fcntl(0, F_GETFL) & O_RDWR) != O_RDWR) | |
| 260 | if ((fcntl(0, F_GETFL, 0) & O_RDWR) != O_RDWR) | ||
| 261 | bb_error_msg_and_die("stdin is not open for read/write"); | 258 | bb_error_msg_and_die("stdin is not open for read/write"); |
| 262 | } | 259 | } |
| 263 | 260 | ||
| @@ -274,7 +271,6 @@ static void open_tty(const char *tty, struct termios *tp, int local) | |||
| 274 | * by patching the SunOS kernel variable "zsadtrlow" to a larger value; | 271 | * by patching the SunOS kernel variable "zsadtrlow" to a larger value; |
| 275 | * 5 seconds seems to be a good value. | 272 | * 5 seconds seems to be a good value. |
| 276 | */ | 273 | */ |
| 277 | |||
| 278 | ioctl_or_perror_and_die(0, TCGETS, tp, "%s: TCGETS", tty); | 274 | ioctl_or_perror_and_die(0, TCGETS, tp, "%s: TCGETS", tty); |
| 279 | 275 | ||
| 280 | /* | 276 | /* |
| @@ -362,7 +358,7 @@ static void termios_init(struct termios *tp, int speed, struct options *op) | |||
| 362 | ioctl(0, TCSETS, tp); | 358 | ioctl(0, TCSETS, tp); |
| 363 | 359 | ||
| 364 | /* go to blocking input even in local mode */ | 360 | /* go to blocking input even in local mode */ |
| 365 | fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) & ~O_NONBLOCK); | 361 | ndelay_off(0); |
| 366 | 362 | ||
| 367 | debug("term_io 2\n"); | 363 | debug("term_io 2\n"); |
| 368 | } | 364 | } |
| @@ -791,7 +787,7 @@ int getty_main(int argc, char **argv) | |||
| 791 | 787 | ||
| 792 | if (!(options.flags & F_LOCAL)) { | 788 | if (!(options.flags & F_LOCAL)) { |
| 793 | /* go to blocking write mode unless -L is specified */ | 789 | /* go to blocking write mode unless -L is specified */ |
| 794 | fcntl(1, F_SETFL, fcntl(1, F_GETFL, 0) & ~O_NONBLOCK); | 790 | ndelay_off(1); |
| 795 | } | 791 | } |
| 796 | 792 | ||
| 797 | /* Optionally detect the baud rate from the modem status message. */ | 793 | /* Optionally detect the baud rate from the modem status message. */ |
