From a7d5da885791d00a6bd730dca26c9806cbf996c5 Mon Sep 17 00:00:00 2001
From: Markus Armbruster <armbru@redhat.com>
Date: Mon, 7 Dec 2009 21:37:01 +0100
Subject: [PATCH] monitor: Fix double-prompt after "change vnc passwd BLA"

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
(cherry picked from commit 2895e075c6dba0e66c72af781b1eed2bff0c3777)
---
 monitor.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/monitor.c b/monitor.c
index bdf4b720af..2db2a9851c 100644
--- a/monitor.c
+++ b/monitor.c
@@ -815,12 +815,17 @@ static void do_change_block(Monitor *mon, const char *device,
     monitor_read_bdrv_key_start(mon, bs, NULL, NULL);
 }
 
-static void change_vnc_password_cb(Monitor *mon, const char *password,
-                                   void *opaque)
+static void change_vnc_password(Monitor *mon, const char *password)
 {
     if (vnc_display_password(NULL, password) < 0)
         monitor_printf(mon, "could not set VNC server password\n");
 
+}
+
+static void change_vnc_password_cb(Monitor *mon, const char *password,
+                                   void *opaque)
+{
+    change_vnc_password(mon, password);
     monitor_read_command(mon, 1);
 }
 
@@ -832,7 +837,7 @@ static void do_change_vnc(Monitor *mon, const char *target, const char *arg)
             char password[9];
             strncpy(password, arg, sizeof(password));
             password[sizeof(password) - 1] = '\0';
-            change_vnc_password_cb(mon, password, NULL);
+            change_vnc_password(mon, password);
         } else {
             monitor_read_password(mon, change_vnc_password_cb, NULL);
         }