diff options
Diffstat (limited to 'drivers/char/tty_io.c')
| -rw-r--r-- | drivers/char/tty_io.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index daeb8f766971..e4dce8709541 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c | |||
| @@ -695,13 +695,23 @@ struct tty_driver *tty_find_polling_driver(char *name, int *line) | |||
| 695 | { | 695 | { |
| 696 | struct tty_driver *p, *res = NULL; | 696 | struct tty_driver *p, *res = NULL; |
| 697 | int tty_line = 0; | 697 | int tty_line = 0; |
| 698 | int len; | ||
| 698 | char *str; | 699 | char *str; |
| 699 | 700 | ||
| 701 | for (str = name; *str; str++) | ||
| 702 | if ((*str >= '0' && *str <= '9') || *str == ',') | ||
| 703 | break; | ||
| 704 | if (!*str) | ||
| 705 | return NULL; | ||
| 706 | |||
| 707 | len = str - name; | ||
| 708 | tty_line = simple_strtoul(str, &str, 10); | ||
| 709 | |||
| 700 | mutex_lock(&tty_mutex); | 710 | mutex_lock(&tty_mutex); |
| 701 | /* Search through the tty devices to look for a match */ | 711 | /* Search through the tty devices to look for a match */ |
| 702 | list_for_each_entry(p, &tty_drivers, tty_drivers) { | 712 | list_for_each_entry(p, &tty_drivers, tty_drivers) { |
| 703 | str = name + strlen(p->name); | 713 | if (strncmp(name, p->name, len) != 0) |
| 704 | tty_line = simple_strtoul(str, &str, 10); | 714 | continue; |
| 705 | if (*str == ',') | 715 | if (*str == ',') |
| 706 | str++; | 716 | str++; |
| 707 | if (*str == '\0') | 717 | if (*str == '\0') |
