aboutsummaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/qemu-pixman.c3
-rw-r--r--ui/spice-core.c4
-rw-r--r--ui/vnc-ws.c11
3 files changed, 10 insertions, 8 deletions
diff --git a/ui/qemu-pixman.c b/ui/qemu-pixman.c
index 609335ab11..6dcbe90546 100644
--- a/ui/qemu-pixman.c
+++ b/ui/qemu-pixman.c
@@ -3,7 +3,8 @@
* See the COPYING file in the top-level directory.
*/
-#include "ui/qemu-pixman.h"
+#include "qemu-common.h"
+#include "ui/console.h"
int qemu_pixman_get_type(int rshift, int gshift, int bshift)
{
diff --git a/ui/spice-core.c b/ui/spice-core.c
index 3f2c5650cd..bcc4199e7a 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -848,8 +848,8 @@ static int qemu_spice_set_ticket(bool fail_if_conn, bool disconnect_if_conn)
int qemu_spice_set_passwd(const char *passwd,
bool fail_if_conn, bool disconnect_if_conn)
{
- free(auth_passwd);
- auth_passwd = strdup(passwd);
+ g_free(auth_passwd);
+ auth_passwd = g_strdup(passwd);
return qemu_spice_set_ticket(fail_if_conn, disconnect_if_conn);
}
diff --git a/ui/vnc-ws.c b/ui/vnc-ws.c
index 9ccdc1971c..3e3020916c 100644
--- a/ui/vnc-ws.c
+++ b/ui/vnc-ws.c
@@ -120,10 +120,11 @@ static char *vncws_extract_handshake_entry(const char *handshake,
static void vncws_send_handshake_response(VncState *vs, const char* key)
{
char combined_key[WS_CLIENT_KEY_LEN + WS_GUID_LEN + 1];
- char hash[SHA1_DIGEST_LEN];
- size_t hash_size = SHA1_DIGEST_LEN;
+ unsigned char hash[SHA1_DIGEST_LEN];
+ size_t hash_size = sizeof(hash);
char *accept = NULL, *response = NULL;
gnutls_datum_t in;
+ int ret;
g_strlcpy(combined_key, key, WS_CLIENT_KEY_LEN + 1);
g_strlcat(combined_key, WS_GUID, WS_CLIENT_KEY_LEN + WS_GUID_LEN + 1);
@@ -131,9 +132,9 @@ static void vncws_send_handshake_response(VncState *vs, const char* key)
/* hash and encode it */
in.data = (void *)combined_key;
in.size = WS_CLIENT_KEY_LEN + WS_GUID_LEN;
- if (gnutls_fingerprint(GNUTLS_DIG_SHA1, &in, hash, &hash_size)
- == GNUTLS_E_SUCCESS) {
- accept = g_base64_encode((guchar *)hash, SHA1_DIGEST_LEN);
+ ret = gnutls_fingerprint(GNUTLS_DIG_SHA1, &in, hash, &hash_size);
+ if (ret == GNUTLS_E_SUCCESS && hash_size <= SHA1_DIGEST_LEN) {
+ accept = g_base64_encode(hash, hash_size);
}
if (accept == NULL) {
VNC_DEBUG("Hashing Websocket combined key failed\n");