From 5de94f46233fc7b817db9fe04620290d8abdc927 Mon Sep 17 00:00:00 2001 From: luporl Date: Wed, 19 Jun 2019 11:37:43 +0000 Subject: [PATCH] [PPC] Fix loader input with newer QEMU versions At least since version 4.0.0, QEMU became bug-compatible with PowerVM's vty, by inserting a \0 after every \r. As this confuses loader's interpreter and as a \0 coming from the console doesn't seem reasonable, it's now being filtered at OFW console input. Reviewed by: jhibbits MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D20676 --- stand/ofw/libofw/ofw_console.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/stand/ofw/libofw/ofw_console.c b/stand/ofw/libofw/ofw_console.c index 59ce9a5067d5..a129997c5df2 100644 --- a/stand/ofw/libofw/ofw_console.c +++ b/stand/ofw/libofw/ofw_console.c @@ -97,7 +97,11 @@ ofw_cons_getchar() return l; } - if (OF_read(stdin, &ch, 1) > 0) + /* At least since version 4.0.0, QEMU became bug-compatible + * with PowerVM's vty, by inserting a \0 after every \r. + * As this confuses loader's interpreter and as a \0 coming + * from the console doesn't seem reasonable, it's filtered here. */ + if (OF_read(stdin, &ch, 1) > 0 && ch != '\0') return (ch); return (-1);