forked from pool/util-linux
.
OBS-URL: https://build.opensuse.org/package/show/Base:System/util-linux?expand=0&rev=210
This commit is contained in:
parent
7a6a2e8526
commit
3a4700cd33
@ -1,5 +1,5 @@
|
|||||||
--- term-utils/agetty.c
|
--- term-utils/agetty.c
|
||||||
+++ term-utils/agetty.c 2014-02-03 16:08:55.446235045 +0000
|
+++ term-utils/agetty.c 2014-02-04 08:50:09.798235374 +0000
|
||||||
@@ -571,6 +571,7 @@ static void login_options_to_argv(char *
|
@@ -571,6 +571,7 @@ static void login_options_to_argv(char *
|
||||||
/* Parse command-line arguments. */
|
/* Parse command-line arguments. */
|
||||||
static void parse_args(int argc, char **argv, struct options *op)
|
static void parse_args(int argc, char **argv, struct options *op)
|
||||||
@ -8,26 +8,21 @@
|
|||||||
int c;
|
int c;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@@ -745,8 +746,13 @@ static void parse_args(int argc, char **
|
@@ -745,8 +746,16 @@ static void parse_args(int argc, char **
|
||||||
usage(stderr);
|
usage(stderr);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ c = asprintf(ptr, "/dev/%s", argv[optind]);
|
+ c = asprintf(&ptr, "/dev/%s", argv[optind]);
|
||||||
+ if (c < 0)
|
+ if (c < 0)
|
||||||
+ log_err(_("failed to allocate memory: %m"));
|
+ log_err(_("failed to allocate memory: %m"));
|
||||||
|
+
|
||||||
|
+ c = access(ptr, F_OK);
|
||||||
|
+ free(ptr);
|
||||||
|
+ errno = 0;
|
||||||
+
|
+
|
||||||
/* Accept "tty", "baudrate tty", and "tty baudrate". */
|
/* Accept "tty", "baudrate tty", and "tty baudrate". */
|
||||||
- if ('0' <= argv[optind][0] && argv[optind][0] <= '9') {
|
- if ('0' <= argv[optind][0] && argv[optind][0] <= '9') {
|
||||||
+ if (access(ptr, F_OK) < 0) {
|
+ if (c < 0) {
|
||||||
+ errno = 0;
|
|
||||||
/* Assume BSD style speed. */
|
/* Assume BSD style speed. */
|
||||||
parse_speeds(op, argv[optind++]);
|
parse_speeds(op, argv[optind++]);
|
||||||
if (argc < optind + 1) {
|
if (argc < optind + 1) {
|
||||||
@@ -764,6 +770,7 @@ static void parse_args(int argc, char **
|
|
||||||
op->speeds[op->numspeed++] = bcode("9600");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ free(ptr);
|
|
||||||
|
|
||||||
/* On virtual console remember the line which is used for */
|
|
||||||
if (strncmp(op->tty, "tty", 3) == 0 &&
|
|
||||||
|
Loading…
Reference in New Issue
Block a user