[Spice-devel] [PATCH spice-server] glz-encoder: Do not discard top bits of lower part sending 64 bit ints

Jonathon Jongsma jjongsma at redhat.com
Tue Apr 24 14:55:58 UTC 2018


Acked-by: Jonathon Jongsma <jjongsma at redhat.com>


On Mon, 2018-04-23 at 10:51 +0100, Frediano Ziglio wrote:
> When GLZ code attempts to send a 64 bit integer the 8 top bit of
> the lower (32 bits) part of the number are stripped due to a bug.
> 
> This was discovered by Zhongqiang Huang <useprxf at gmail.com>
> 
> Reported-by: Zhongqiang Huang <useprxf at gmail.com>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/glz-encoder.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/server/glz-encoder.c b/server/glz-encoder.c
> index c258726c..dba2cd12 100644
> --- a/server/glz-encoder.c
> +++ b/server/glz-encoder.c
> @@ -84,7 +84,7 @@ static inline void encode_32(Encoder *encoder,
> unsigned int word)
>  static inline void encode_64(Encoder *encoder, uint64_t word)
>  {
>      encode_32(encoder, (uint32_t)(word >> 32));
> -    encode_32(encoder, (uint32_t)(word & 0xffffff));
> +    encode_32(encoder, (uint32_t)(word & 0xffffffffu));
>  }
>  
>  static inline void encode_copy_count(Encoder *encoder, uint8_t
> copy_count)


More information about the Spice-devel mailing list