From 04e7f512d2889f1f29022eb69739173c55fc374c Mon Sep 17 00:00:00 2001 From: Frediano Ziglio Date: Mon, 23 Apr 2018 10:50:43 +0100 Subject: [PATCH] glz-encoder: Do not discard top bits of lower part sending 64 bit ints 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 Reported-by: Zhongqiang Huang Signed-off-by: Frediano Ziglio Acked-by: Jonathon Jongsma --- 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)