summaryrefslogtreecommitdiff
blob: d09d52c292a6540151412b54ce1dfc422ea576c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
From c2aaac0083f58d285b8feb24f13fe347d7f726fe Mon Sep 17 00:00:00 2001
From: Rolf Eike Beer <eike@sf-mail.de>
Date: Sat, 17 Mar 2018 10:28:00 +0000
Subject: [PATCH] WebSockets: Avoid unaligned memory access

This is causing test failures in SPARC architectures.

https://bugzilla.gnome.org/show_bug.cgi?id=794421
---
 libsoup/soup-websocket-connection.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libsoup/soup-websocket-connection.c b/libsoup/soup-websocket-connection.c
index 0258a22c..35eee6a6 100644
--- a/libsoup/soup-websocket-connection.c
+++ b/libsoup/soup-websocket-connection.c
@@ -401,9 +401,10 @@ send_message (SoupWebsocketConnection *self,
 	 * probably a client somewhere that's not expecting it.
 	 */
 	if (self->pv->connection_type == SOUP_WEBSOCKET_CONNECTION_CLIENT) {
+		guint32 rnd = g_random_int ();
 		outer[1] |= 0x80;
 		mask = outer + bytes->len;
-		* ((guint32 *)mask) = g_random_int ();
+		memcpy (mask, &rnd, sizeof (rnd));
 		bytes->len += 4;
 	}