qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Fix off-by-one bug limiting VNC passwords to 7 chars
@ 2008-11-23 11:31 Chris Webb
  2008-11-23 12:31 ` Thiemo Seufer
  0 siblings, 1 reply; 9+ messages in thread
From: Chris Webb @ 2008-11-23 11:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: kvm

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 <chris@arachsys.com>
---
 monitor.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/monitor.c b/monitor.c
index 22360fc..6ae5729 100644
--- a/monitor.c
+++ b/monitor.c
@@ -433,7 +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);
+	monitor_readline("Password: ", 1, password, sizeof(password));
 	password[sizeof(password)-1] = '\0';
 	if (vnc_display_password(NULL, password) < 0)
 	    term_printf("could not set VNC server password\n");

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH] Fix off-by-one bug limiting VNC passwords to 7 chars
  2008-11-23 11:31 [Qemu-devel] [PATCH] Fix off-by-one bug limiting VNC passwords to 7 chars Chris Webb
@ 2008-11-23 12:31 ` Thiemo Seufer
  2008-11-25 10:09   ` Chris Webb
  0 siblings, 1 reply; 9+ messages in thread
From: Thiemo Seufer @ 2008-11-23 12:31 UTC (permalink / raw)
  To: Chris Webb; +Cc: qemu-devel, kvm

Chris Webb wrote:
> 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 <chris@arachsys.com>
> ---
>  monitor.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/monitor.c b/monitor.c
> index 22360fc..6ae5729 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -433,7 +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);
> +	monitor_readline("Password: ", 1, password, sizeof(password));
>  	password[sizeof(password)-1] = '\0';

The next line can go as well, the string is already NULL terminated.


Thiemo

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH] Fix off-by-one bug limiting VNC passwords to 7 chars
  2008-11-23 12:31 ` Thiemo Seufer
@ 2008-11-25 10:09   ` Chris Webb
  2008-11-25 10:25     ` [Qemu-devel] [PATCH v2] " Chris Webb
  2008-12-08 14:09     ` [Qemu-devel] [RESEND] [PATCH v2] Fix off-by-one bug limiting VNC passwords to 7 chars Chris Webb
  0 siblings, 2 replies; 9+ messages in thread
From: Chris Webb @ 2008-11-25 10:09 UTC (permalink / raw)
  To: Thiemo Seufer; +Cc: qemu-devel, kvm

Thiemo Seufer <ths@networkno.de> writes:

> Chris Webb wrote:
[...]
> > -	monitor_readline("Password: ", 1, password, sizeof(password)-1);
> > +	monitor_readline("Password: ", 1, password, sizeof(password));
> >  	password[sizeof(password)-1] = '\0';
> 
> The next line can go as well, the string is already NULL terminated.

You're quite right. I'll update the two patches to reflect this change.

Cheers,

Chris.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH v2] Fix off-by-one bug limiting VNC passwords to 7 chars
  2008-11-25 10:09   ` Chris Webb
@ 2008-11-25 10:25     ` Chris Webb
  2008-11-25 10:26       ` [Qemu-devel] [PATCH v2] Accept password as an argument to 'change vnc password' Chris Webb
  2008-12-08 14:09       ` [Qemu-devel] [RESEND] " Chris Webb
  2008-12-08 14:09     ` [Qemu-devel] [RESEND] [PATCH v2] Fix off-by-one bug limiting VNC passwords to 7 chars Chris Webb
  1 sibling, 2 replies; 9+ messages in thread
From: Chris Webb @ 2008-11-25 10:25 UTC (permalink / raw)
  To: qemu-devel, kvm

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 <chris@arachsys.com>
---
 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 {

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH v2] Accept password as an argument to 'change vnc password'
  2008-11-25 10:25     ` [Qemu-devel] [PATCH v2] " Chris Webb
@ 2008-11-25 10:26       ` Chris Webb
  2008-12-08 14:09       ` [Qemu-devel] [RESEND] " Chris Webb
  1 sibling, 0 replies; 9+ messages in thread
From: Chris Webb @ 2008-11-25 10:26 UTC (permalink / raw)
  To: qemu-devel, kvm

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 <chris@arachsys.com>
---
 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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [RESEND] [PATCH v2] Fix off-by-one bug limiting VNC passwords to 7 chars
  2008-11-25 10:09   ` Chris Webb
  2008-11-25 10:25     ` [Qemu-devel] [PATCH v2] " Chris Webb
@ 2008-12-08 14:09     ` Chris Webb
  2008-12-10 15:14       ` [Qemu-devel] " Anthony Liguori
  1 sibling, 1 reply; 9+ messages in thread
From: Chris Webb @ 2008-12-08 14:09 UTC (permalink / raw)
  To: qemu-devel, kvm

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 <chris@arachsys.com>
---
 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 {

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [RESEND] [PATCH v2] Accept password as an argument to 'change vnc password'
  2008-11-25 10:25     ` [Qemu-devel] [PATCH v2] " Chris Webb
  2008-11-25 10:26       ` [Qemu-devel] [PATCH v2] Accept password as an argument to 'change vnc password' Chris Webb
@ 2008-12-08 14:09       ` Chris Webb
  2008-12-10 15:14         ` [Qemu-devel] " Anthony Liguori
  1 sibling, 1 reply; 9+ messages in thread
From: Chris Webb @ 2008-12-08 14:09 UTC (permalink / raw)
  To: qemu-devel, kvm

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 <chris@arachsys.com>
---
 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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] Re: [RESEND] [PATCH v2] Accept password as an argument to 'change vnc password'
  2008-12-08 14:09       ` [Qemu-devel] [RESEND] " Chris Webb
@ 2008-12-10 15:14         ` Anthony Liguori
  0 siblings, 0 replies; 9+ messages in thread
From: Anthony Liguori @ 2008-12-10 15:14 UTC (permalink / raw)
  To: Chris Webb; +Cc: qemu-devel, kvm

Chris Webb wrote:
> 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 <chris@arachsys.com>
>   

Applied.  Thanks.

Regards,

Anthony Liguori

> ---
>  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
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>   

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Qemu-devel] Re: [RESEND] [PATCH v2] Fix off-by-one bug limiting VNC passwords to 7 chars
  2008-12-08 14:09     ` [Qemu-devel] [RESEND] [PATCH v2] Fix off-by-one bug limiting VNC passwords to 7 chars Chris Webb
@ 2008-12-10 15:14       ` Anthony Liguori
  0 siblings, 0 replies; 9+ messages in thread
From: Anthony Liguori @ 2008-12-10 15:14 UTC (permalink / raw)
  To: Chris Webb; +Cc: qemu-devel, kvm

Applied.  Thanks.

Regards,

Anthony Liguori

Chris Webb wrote:
> 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 <chris@arachsys.com>
> ---
>  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 {
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>   

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2008-12-10 15:14 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-23 11:31 [Qemu-devel] [PATCH] Fix off-by-one bug limiting VNC passwords to 7 chars Chris Webb
2008-11-23 12:31 ` Thiemo Seufer
2008-11-25 10:09   ` Chris Webb
2008-11-25 10:25     ` [Qemu-devel] [PATCH v2] " Chris Webb
2008-11-25 10:26       ` [Qemu-devel] [PATCH v2] Accept password as an argument to 'change vnc password' Chris Webb
2008-12-08 14:09       ` [Qemu-devel] [RESEND] " Chris Webb
2008-12-10 15:14         ` [Qemu-devel] " Anthony Liguori
2008-12-08 14:09     ` [Qemu-devel] [RESEND] [PATCH v2] Fix off-by-one bug limiting VNC passwords to 7 chars Chris Webb
2008-12-10 15:14       ` [Qemu-devel] " Anthony Liguori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).