[Spice-devel] [PATCH] fix integer marshalling helpers on big endian

Alon Levy alevy at redhat.com
Wed Jul 27 09:41:25 PDT 2011


On Wed, Jul 27, 2011 at 05:46:22PM +0200, Christophe Fergeau wrote:
> 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.

ACK. That doesn't even compile.

> ---
>  common/marshaller.c |   12 ++++++------
>  1 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/common/marshaller.c b/common/marshaller.c
> index 242d037..8bf3427 100644
> --- a/common/marshaller.c
> +++ b/common/marshaller.c
> @@ -27,12 +27,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)
> -- 
> 1.7.6
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list