From mboxrd@z Thu Jan 1 00:00:00 1970 From: Asias He Subject: [PATCH] kvm tools: Sanitize output characters in serial console Date: Wed, 10 Aug 2011 07:56:58 +0800 Message-ID: <1312934218-32666-1-git-send-email-asias.hejun@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: Cyrill Gorcunov , Ingo Molnar , Sasha Levin , Prasad Joshi , kvm@vger.kernel.org, Asias He To: Pekka Enberg Return-path: Received: from mail-yi0-f46.google.com ([209.85.218.46]:64855 "EHLO mail-yi0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751393Ab1HIX5f (ORCPT ); Tue, 9 Aug 2011 19:57:35 -0400 Received: by yie30 with SMTP id 30so367079yie.19 for ; Tue, 09 Aug 2011 16:57:35 -0700 (PDT) Sender: kvm-owner@vger.kernel.org List-ID: This patch fixes strange characters in serial console. Before: [ 0.448000] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled =EF=BF=BD[ 0.695000] serial8250: ttyS0 at I/O 0x3f8 (irq =3D 0) is a= 16550A =EF=BF=BD[ 0.942000] serial8250: ttyS1 at I/O 0x2f8 (irq =3D 0) is a= 16550A =EF=BF=BD[ 1.189000] serial8250: ttyS2 at I/O 0x3e8 (irq =3D 0) is a= 16550A [ 1.194000] Non-volatile memory driver v1.3 After: [ 0.541000] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.788000] serial8250: ttyS0 at I/O 0x3f8 (irq =3D 0) is a 16550A [ 1.041000] serial8250: ttyS1 at I/O 0x2f8 (irq =3D 0) is a 16550A [ 1.294000] serial8250: ttyS2 at I/O 0x3e8 (irq =3D 0) is a 16550A [ 1.309000] Non-volatile memory driver v1.3 Signed-off-by: Asias He --- tools/kvm/term.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/kvm/term.c b/tools/kvm/term.c index 2a3e1f0..85b41e7 100644 --- a/tools/kvm/term.c +++ b/tools/kvm/term.c @@ -5,6 +5,7 @@ #include #include #include +#include =20 #include "kvm/read-write.h" #include "kvm/term.h" @@ -57,8 +58,10 @@ int term_putc(int who, char *addr, int cnt) if (who !=3D active_console) return -1; =20 - while (cnt--) - fprintf(stdout, "%c", *addr++); + while (cnt--) { + if (isascii(*addr)) + fprintf(stdout, "%c", *addr++); + } =20 fflush(stdout); return cnt; --=20 1.7.5.4