vnc: call sasl_server_init() only when required
VNC server is calling sasl_server_init() during startup of QEMU, even if SASL auth has not been enabled. This may create undesirable warnings like "Could not find keytab file: /etc/qemu/krb5.tab" when the user didn't configure SASL on host and started VNC server. Instead, only initialize SASL when needed. Note that HMP/QMP "change vnc" calls vnc_display_open() again, which will initialize SASL if needed. Fix assignment in if condition, while touching this code. Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1609327 Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20180907063634.359-1-marcandre.lureau@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
6624c38d11
commit
b5dc0d7d56
9
ui/vnc.c
9
ui/vnc.c
@ -3821,9 +3821,6 @@ void vnc_display_open(const char *id, Error **errp)
|
||||
bool reverse = false;
|
||||
const char *credid;
|
||||
bool sasl = false;
|
||||
#ifdef CONFIG_VNC_SASL
|
||||
int saslErr;
|
||||
#endif
|
||||
int acl = 0;
|
||||
int lock_key_sync = 1;
|
||||
int key_delay_ms;
|
||||
@ -3963,11 +3960,15 @@ void vnc_display_open(const char *id, Error **errp)
|
||||
trace_vnc_auth_init(vd, 1, vd->ws_auth, vd->ws_subauth);
|
||||
|
||||
#ifdef CONFIG_VNC_SASL
|
||||
if ((saslErr = sasl_server_init(NULL, "qemu")) != SASL_OK) {
|
||||
if (sasl) {
|
||||
int saslErr = sasl_server_init(NULL, "qemu");
|
||||
|
||||
if (saslErr != SASL_OK) {
|
||||
error_setg(errp, "Failed to initialize SASL auth: %s",
|
||||
sasl_errstring(saslErr, NULL, NULL));
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
vd->lock_key_sync = lock_key_sync;
|
||||
if (lock_key_sync) {
|
||||
|
Loading…
Reference in New Issue
Block a user