diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c index 96e837afe8..1f95618cf6 100644 --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -1547,6 +1547,9 @@ static bool __init parse_positional(struct ns16550 *uart, char **str) { uart->data_bits = simple_strtoul(conf, &conf, 10); + if ( !*conf ) + PARSE_ERR_RET("bad DPS setting"); + uart->parity = parse_parity_char(*conf); uart->stop_bits = simple_strtoul(conf + 1, &conf, 10);