diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index 5f0f54201b..9bbcb0f57a 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -592,11 +592,11 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer, int count) guest_printk(cd, XENLOG_G_DEBUG "%s%s\n", cd->pbuf, kbuf); cd->pbuf_idx = 0; } - else if ( cd->pbuf_idx + kcount < (DOMAIN_PBUF_SIZE - 1) ) + else if ( cd->pbuf_idx + (kout - kbuf) < (DOMAIN_PBUF_SIZE - 1) ) { /* buffer the output until a newline */ - memcpy(cd->pbuf + cd->pbuf_idx, kbuf, kcount); - cd->pbuf_idx += kcount; + memcpy(cd->pbuf + cd->pbuf_idx, kbuf, kout - kbuf); + cd->pbuf_idx += (kout - kbuf); } else {