Fix unaligned memory access on sparc (Thanks David Coppa)

This commit is contained in:
Michael Stapelberg 2011-04-28 21:47:14 +02:00
parent a5bef3ab51
commit 1ddb1e6dfa

View File

@ -463,7 +463,8 @@ static void ipc_receive_message(EV_P_ struct ev_io *w, int revents) {
n -= strlen(I3_IPC_MAGIC); n -= strlen(I3_IPC_MAGIC);
/* The next 32 bit after the magic are the message size */ /* The next 32 bit after the magic are the message size */
uint32_t message_size = *((uint32_t*)message); uint32_t message_size;
memcpy(&message_size, (uint32_t*)message, sizeof(uint32_t));
message += sizeof(uint32_t); message += sizeof(uint32_t);
n -= sizeof(uint32_t); n -= sizeof(uint32_t);
@ -473,7 +474,8 @@ static void ipc_receive_message(EV_P_ struct ev_io *w, int revents) {
} }
/* The last 32 bits of the header are the message type */ /* The last 32 bits of the header are the message type */
uint32_t message_type = *((uint32_t*)message); uint32_t message_type;
memcpy(&message_type, (uint32_t*)message, sizeof(uint32_t));
message += sizeof(uint32_t); message += sizeof(uint32_t);
n -= sizeof(uint32_t); n -= sizeof(uint32_t);