vnc: avoid deprecation warnings for SASL on OS X

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>
This commit is contained in:
Paolo Bonzini 2021-06-04 14:09:15 +02:00
parent 1ea06abcee
commit b65310ab34
3 changed files with 23 additions and 8 deletions

View File

@ -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) {

View File

@ -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);

View File

@ -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;