From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L9gfO-0006t6-Os for qemu-devel@nongnu.org; Mon, 08 Dec 2008 09:00:54 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L9gfL-0006s8-OA for qemu-devel@nongnu.org; Mon, 08 Dec 2008 09:00:53 -0500 Received: from [199.232.76.173] (port=46033 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L9gfK-0006s0-UO for qemu-devel@nongnu.org; Mon, 08 Dec 2008 09:00:51 -0500 Received: from mail.gmx.net ([213.165.64.20]:35058) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1L9gfK-00082l-5v for qemu-devel@nongnu.org; Mon, 08 Dec 2008 09:00:50 -0500 From: Fabian Deutsch In-Reply-To: <20081208135606.GE19711@arachsys.com> References: <20081208135606.GE19711@arachsys.com> Content-Type: text/plain Date: Mon, 08 Dec 2008 15:00:27 +0100 Message-Id: <1228744827.3253.3.camel@localhost.localdomain> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: Two VNC patches Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Chris Webb Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org Hey Chris, Am Montag, den 08.12.2008, 13:56 +0000 schrieb Chris Webb: > I sent this pair of VNC-related patches to the qemu-devel list a couple of > weeks back and I'm not sure whether they've got lost in the cracks or were > in some way not acceptable and need fixing up. Can you resend them as inline patches? Cheers fabian > The first one is a straightforward bug-fix, and the second is a trivial > convenience feature in the monitor which I imagine ought to be fairly > uncontroversial? > > Cheers, > > Chris. > E-Mail-Nachricht-Anlage > > -------- Weitergeleitete Nachricht -------- > > > > Fix off-by-one bug limiting VNC passwords to 7 characters instead of 8 > > > > monitor_readline expects buf_size to include the terminating \0, but > > do_change_vnc in monitor.c calls it as though it doesn't. The other site > > where monitor_readline reads a password (in vl.c) passes the buffer length > > correctly. > > > > Signed-off-by: Chris Webb > > --- > > monitor.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/monitor.c b/monitor.c > > index 22360fc..a252838 100644 > > --- a/monitor.c > > +++ b/monitor.c > > @@ -433,8 +433,7 @@ static void do_change_vnc(const char *target) > > if (strcmp(target, "passwd") == 0 || > > strcmp(target, "password") == 0) { > > char password[9]; > > - monitor_readline("Password: ", 1, password, sizeof(password)-1); > > - password[sizeof(password)-1] = '\0'; > > + monitor_readline("Password: ", 1, password, sizeof(password)); > > if (vnc_display_password(NULL, password) < 0) > > term_printf("could not set VNC server password\n"); > > } else { > > > E-Mail-Nachricht-Anlage > > -------- Weitergeleitete Nachricht -------- > > > > Accept password as an argument to 'change vnc password' monitor command > > > > This allows easier use of the change vnc password monitor command from > > management scripts, without having to implement expect(1)-like behaviour. > > > > Signed-off-by: Chris Webb > > --- > > monitor.c | 14 +++++++++----- > > qemu-doc.texi | 8 ++++---- > > 2 files changed, 13 insertions(+), 9 deletions(-) > > > > diff --git a/monitor.c b/monitor.c > > index a252838..f6a2783 100644 > > --- a/monitor.c > > +++ b/monitor.c > > @@ -428,12 +428,16 @@ static void do_change_block(const char *device, const char *filename, const char > > qemu_key_check(bs, filename); > > } > > > > -static void do_change_vnc(const char *target) > > +static void do_change_vnc(const char *target, const char *arg) > > { > > if (strcmp(target, "passwd") == 0 || > > strcmp(target, "password") == 0) { > > char password[9]; > > - monitor_readline("Password: ", 1, password, sizeof(password)); > > + if (arg) { > > + strncpy(password, arg, sizeof(password)); > > + password[sizeof(password) - 1] = '\0'; > > + } else > > + monitor_readline("Password: ", 1, password, sizeof(password)); > > if (vnc_display_password(NULL, password) < 0) > > term_printf("could not set VNC server password\n"); > > } else { > > @@ -442,12 +446,12 @@ static void do_change_vnc(const char *target) > > } > > } > > > > -static void do_change(const char *device, const char *target, const char *fmt) > > +static void do_change(const char *device, const char *target, const char *arg) > > { > > if (strcmp(device, "vnc") == 0) { > > - do_change_vnc(target); > > + do_change_vnc(target, arg); > > } else { > > - do_change_block(device, target, fmt); > > + do_change_block(device, target, arg); > > } > > } > > > > diff --git a/qemu-doc.texi b/qemu-doc.texi > > index 1735d92..ca3b181 100644 > > --- a/qemu-doc.texi > > +++ b/qemu-doc.texi > > @@ -1233,11 +1233,11 @@ and @var{options} are described at @ref{sec_invocation}. eg > > (qemu) change vnc localhost:1 > > @end example > > > > -@item change vnc password > > +@item change vnc password [@var{password}] > > > > -Change the password associated with the VNC server. The monitor will prompt for > > -the new password to be entered. VNC passwords are only significant upto 8 letters. > > -eg. > > +Change the password associated with the VNC server. If the new password is not > > +supplied, the monitor will prompt for it to be entered. VNC passwords are only > > +significant up to 8 letters. eg > > > > @example > > (qemu) change vnc password > >