Skip to content

Commit

Permalink
vnc: avoid deprecation warnings for SASL on OS X
Browse files Browse the repository at this point in the history
Apple has deprecated sasl.h functions in OS X 10.11.  Therefore,
all files that use SASL API need to disable -Wdeprecated-declarations.
Remove the only use that is outside vnc-auth-sasl.c and add the
relevant #pragma GCC diagnostic there.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210604120915.286195-1-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
bonzini committed Jun 14, 2021
1 parent 894fc4f commit eb0bdaa
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 8 deletions.
20 changes: 20 additions & 0 deletions ui/vnc-auth-sasl.c
Expand Up @@ -28,10 +28,30 @@
#include "vnc.h"
#include "trace.h"

/*
* Apple has deprecated sasl.h functions in OS X 10.11. Therefore,
* files that use SASL API need to disable -Wdeprecated-declarations.
*/
#ifdef CONFIG_DARWIN
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif

/* Max amount of data we send/recv for SASL steps to prevent DOS */
#define SASL_DATA_MAX_LEN (1024 * 1024)


bool vnc_sasl_server_init(Error **errp)
{
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));
return false;
}
return true;
}

void vnc_sasl_client_cleanup(VncState *vs)
{
if (vs->sasl.conn) {
Expand Down
1 change: 1 addition & 0 deletions ui/vnc-auth-sasl.h
Expand Up @@ -63,6 +63,7 @@ struct VncDisplaySASL {
char *authzid;
};

bool vnc_sasl_server_init(Error **errp);
void vnc_sasl_client_cleanup(VncState *vs);

size_t vnc_client_read_sasl(VncState *vs);
Expand Down
10 changes: 2 additions & 8 deletions ui/vnc.c
Expand Up @@ -4154,14 +4154,8 @@ 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 (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;
}
if (sasl && !vnc_sasl_server_init(errp)) {
goto fail;
}
#endif
vd->lock_key_sync = lock_key_sync;
Expand Down

0 comments on commit eb0bdaa

Please sign in to comment.