summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2011-07-27 17:20:13 +0200
committerChristophe Fergeau <cfergeau@redhat.com>2011-07-28 11:32:46 +0200
commit048b003468ab7fc5f4c48886cb5941814c484b7c (patch)
tree63b4015b47a2949453c31f4c6eb7a7d3b86a45d3 /common
parent830410e3bee3c0e410af07e833d76ecdf96a8f12 (diff)
downloadspice-048b003468ab7fc5f4c48886cb5941814c484b7c.tar.gz
spice-048b003468ab7fc5f4c48886cb5941814c484b7c.tar.xz
spice-048b003468ab7fc5f4c48886cb5941814c484b7c.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')
-rw-r--r--common/marshaller.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/common/marshaller.c b/common/marshaller.c
index 31a5669e..1446df88 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)