Advancing past a character without knowing whether that's the NUL char is
at risk of reading beyond the buffer.
Fixes: 25de1f692059 ("Allow arch-specific defaults to be specified for ns16550")
Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -1541,6 +1541,9 @@ static bool __init parse_positional(stru
{
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);