diff options
author | Christophe Fergeau <cfergeau@redhat.com> | 2011-07-27 17:20:13 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-03-20 15:25:53 +0100 |
commit | ec5f0c2e99d9f052766ff79494ea51bc59bcdd92 (patch) | |
tree | 405af24fcbbc1350efc24824d6006fa28d60049d /common/marshaller.c | |
parent | 303ac1c9dec062407e3b7001f3e0f6c100b67769 (diff) | |
download | spice-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.c | 12 |
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) |