summaryrefslogtreecommitdiffstats
path: root/common/marshaller.c
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2011-07-27 17:20:13 +0200
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-03-20 15:25:53 +0100
commitec5f0c2e99d9f052766ff79494ea51bc59bcdd92 (patch)
tree405af24fcbbc1350efc24824d6006fa28d60049d /common/marshaller.c
parent303ac1c9dec062407e3b7001f3e0f6c100b67769 (diff)
downloadspice-common-ec5f0c2e99d9f052766ff79494ea51bc59bcdd92.tar.gz
spice-common-ec5f0c2e99d9f052766ff79494ea51bc59bcdd92.tar.xz
spice-common-ec5f0c2e99d9f052766ff79494ea51bc59bcdd92.zip
fix integer marshalling helpers on big endian
They were trying to convert the destination pointer to an integer before trying to dereference it. The initial conversion was meant to be a cast to a pointer of the right size, not to an integer.
Diffstat (limited to 'common/marshaller.c')
-rw-r--r--common/marshaller.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/common/marshaller.c b/common/marshaller.c
index 31a5669..1446df8 100644
--- a/common/marshaller.c
+++ b/common/marshaller.c
@@ -28,12 +28,12 @@
#ifdef WORDS_BIGENDIAN
#define write_int8(ptr,v) (*((int8_t *)(ptr)) = v)
#define write_uint8(ptr,v) (*((uint8_t *)(ptr)) = v)
-#define write_int16(ptr,v) (*((int16_t)(ptr)) = SPICE_BYTESWAP16((uint16_t)(v)))
-#define write_uint16(ptr,v) (*((uint16_t)(ptr)) = SPICE_BYTESWAP16((uint16_t)(v)))
-#define write_int32(ptr,v) (*((int32_t)(ptr)) = SPICE_BYTESWAP32((uint32_t)(v)))
-#define write_uint32(ptr,v) (*((uint32_t)(ptr)) = SPICE_BYTESWAP32((uint32_t)(v)))
-#define write_int64(ptr,v) (*((int64_t)(ptr)) = SPICE_BYTESWAP64((uint64_t)(v)))
-#define write_uint64(ptr,v) (*((uint64_t)(ptr)) = SPICE_BYTESWAP64((uint64_t)(v)))
+#define write_int16(ptr,v) (*((int16_t *)(ptr)) = SPICE_BYTESWAP16((uint16_t)(v)))
+#define write_uint16(ptr,v) (*((uint16_t *)(ptr)) = SPICE_BYTESWAP16((uint16_t)(v)))
+#define write_int32(ptr,v) (*((int32_t *)(ptr)) = SPICE_BYTESWAP32((uint32_t)(v)))
+#define write_uint32(ptr,v) (*((uint32_t *)(ptr)) = SPICE_BYTESWAP32((uint32_t)(v)))
+#define write_int64(ptr,v) (*((int64_t *)(ptr)) = SPICE_BYTESWAP64((uint64_t)(v)))
+#define write_uint64(ptr,v) (*((uint64_t *)(ptr)) = SPICE_BYTESWAP64((uint64_t)(v)))
#else
#define write_int8(ptr,v) (*((int8_t *)(ptr)) = v)
#define write_uint8(ptr,v) (*((uint8_t *)(ptr)) = v)