[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 1/4] xen/console: Properly buffer domU output when using CONSOLEIO_write



On Tue, Apr 02, 2019 at 05:42:35PM +0100, Julien Grall wrote:
> The output will be buffered if the buffer provided by the DomU does not
> contain a newline. This can also happen if buffer provided by DomU is
> split in multiple part (Xen can only process 127 characters at the time).
> 
> As Xen will remove any non-printable characters, the output buffer may
> be smaller than the buffer provided. However, Xen will buffer using the
> original length. This means that the NUL character and garbagge will be
> copied in the internal buffer.
> 
> Once the newline is found or the internal buffer is full, only part of
> the internal buffer will end up to be printed.
> 
> An easy way to reproduce it is:
> 
> HYPERVISOR_consoleio(CONSOLEIO_write, "\33", 1);
> HYPERVISOR_consoleio(CONSOLEIO_write, "d", 1);
> HYPERVISOR_consoleio(CONSOLEIO_write, "\n", 1);
> 
> In the current code, the character 'd' will not be printed.
> 
> This problem can be solved by computing the size of the output buffer
> (i.e the buffer without the non-printable characters).
> 
> Signed-off-by: Julien Grall <julien.grall@xxxxxxx>

Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.