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:
parent
1ea06abcee
commit
b65310ab34
@ -28,10 +28,30 @@
|
|||||||
#include "vnc.h"
|
#include "vnc.h"
|
||||||
#include "trace.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 */
|
/* Max amount of data we send/recv for SASL steps to prevent DOS */
|
||||||
#define SASL_DATA_MAX_LEN (1024 * 1024)
|
#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)
|
void vnc_sasl_client_cleanup(VncState *vs)
|
||||||
{
|
{
|
||||||
if (vs->sasl.conn) {
|
if (vs->sasl.conn) {
|
||||||
|
@ -63,6 +63,7 @@ struct VncDisplaySASL {
|
|||||||
char *authzid;
|
char *authzid;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool vnc_sasl_server_init(Error **errp);
|
||||||
void vnc_sasl_client_cleanup(VncState *vs);
|
void vnc_sasl_client_cleanup(VncState *vs);
|
||||||
|
|
||||||
size_t vnc_client_read_sasl(VncState *vs);
|
size_t vnc_client_read_sasl(VncState *vs);
|
||||||
|
10
ui/vnc.c
10
ui/vnc.c
@ -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);
|
trace_vnc_auth_init(vd, 1, vd->ws_auth, vd->ws_subauth);
|
||||||
|
|
||||||
#ifdef CONFIG_VNC_SASL
|
#ifdef CONFIG_VNC_SASL
|
||||||
if (sasl) {
|
if (sasl && !vnc_sasl_server_init(errp)) {
|
||||||
int saslErr = sasl_server_init(NULL, "qemu");
|
goto fail;
|
||||||
|
|
||||||
if (saslErr != SASL_OK) {
|
|
||||||
error_setg(errp, "Failed to initialize SASL auth: %s",
|
|
||||||
sasl_errstring(saslErr, NULL, NULL));
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
vd->lock_key_sync = lock_key_sync;
|
vd->lock_key_sync = lock_key_sync;
|
||||||
|
Loading…
Reference in New Issue
Block a user