On input "c" being 0xff should already have the effect of bailing early (due to the isprint()), but let's rather make this explicit. Also convert the BUG_ON() to an ASSERT() (nothing fatal happens in the function if this is violated), at the same time extending what is being checked.
Signed-off-by: Jan Beulich <[email protected]> --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -544,10 +544,14 @@ static int hvm_print_line( struct domain *cd = current->domain; char c = *val; - BUG_ON(bytes != 1); + ASSERT(bytes == 1 || port == 0xe9); - /* Accept only printable characters, newline, and horizontal tab. */ - if ( !isprint(c) && (c != '\n') && (c != '\t') ) + /* + * Ignore any input requests and accept only printable characters, + * newline, and horizontal tab. + */ + if ( dir != IOREQ_WRITE || + (!isprint(c) && (c != '\n') && (c != '\t')) ) return X86EMUL_OKAY; spin_lock(&cd->pbuf_lock); _______________________________________________ Xen-devel mailing list [email protected] https://lists.xenproject.org/mailman/listinfo/xen-devel
