The length functions in src/common/hex.c should cast srclen to uint64 prior
to the shift. The current hex_enc_len(...) in encode.c performs such a
cast.

diff --git a/src/common/hex.c b/src/common/hex.c
index 0123c69697..e87aa1fd7f 100644
--- a/src/common/hex.c
+++ b/src/common/hex.c
@@ -178,7 +178,7 @@ pg_hex_decode(const char *src, size_t srclen, char
*dst, size_t dstlen)
 uint64
 pg_hex_enc_len(size_t srclen)
 {
-       return (srclen << 1);
+       return (uint64) srclen << 1;
 }

 /*
@@ -192,5 +192,5 @@ pg_hex_enc_len(size_t srclen)
 uint64
 pg_hex_dec_len(size_t srclen)
 {
-       return (srclen >> 1);
+       return (uint64) srclen >> 1;
 }

Regards,
-- Sehrope Sarkuni
Founder & CEO | JackDB, Inc. | https://www.jackdb.com/

Reply via email to