state machine defect in drivers/tty/vt/vt.c?

From: Joe Perches
Date: Sun Jul 10 2011 - 13:12:57 EST


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;



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/