diff --git a/vnc.c b/vnc.c index ab1f044..c49ce61 100644 --- a/vnc.c +++ b/vnc.c @@ -2082,6 +2082,9 @@ int vnc_display_password(DisplayState *ds, const char *password) { VncDisplay *vs = ds ? (VncDisplay *)ds->opaque : vnc_display; + if (!vs) + return -1; + if (vs->password) { qemu_free(vs->password); vs->password = NULL; @@ -2090,6 +2093,9 @@ int vnc_display_password(DisplayState *ds, const char *password) if (!(vs->password = qemu_strdup(password))) return -1; } + if (vs->auth == VNC_AUTH_NONE) { + vs->auth = VNC_AUTH_VNC; + } return 0; }