Messages in this thread | | | Subject | state machine defect in drivers/tty/vt/vt.c? | From | Joe Perches <> | Date | Sun, 10 Jul 2011 10:11:59 -0700 |
| |
vc->vc_state is sequentially set to different values.
Looks like there's either a return or a break missing at the end of case ESgetpars:
Anyone know the right fix here?
/* console_lock is held */ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, int c) { [...] switch(vc->vc_state) { [...] case ESgetpars: if (c == ';' && vc->vc_npar < NPAR - 1) { vc->vc_npar++; return; } else if (c>='0' && c<='9') { vc->vc_par[vc->vc_npar] *= 10; vc->vc_par[vc->vc_npar] += c - '0'; return; } else vc->vc_state = ESgotpars; case ESgotpars: vc->vc_state = ESnormal;
| |