BUG/MINOR: Wrong type used as argument for spoe_decode_buffer().
Contrary to 64-bits libCs where size_t type size is 8, on systems with 32-bits
size of size_t is 4 (the size of a long) which does not equal to size of uint64_t type.
This was revealed by such GCC warnings on 32bits systems:
src/flt_spoe.c:2259:40: warning: passing argument 4 of spoe_decode_buffer from
incompatible pointer type
if (spoe_decode_buffer(&p, end, &str, &sz) == -1)
^
As the already existing code using spoe_decode_buffer() already use such pointers to
uint64_t, in place of pointer to size_t ;), most of this code is in contrib directory,
this simple patch modifies the prototype of spoe_decode_buffer() so that to use a
pointer to uint64_t in place of a pointer to size_t, uint64_t type being the type
finally required for decode_varint().
diff --git a/src/flt_spoe.c b/src/flt_spoe.c
index 5d57447..1a8bd2c 100644
--- a/src/flt_spoe.c
+++ b/src/flt_spoe.c
@@ -655,7 +655,7 @@
vsn = max_frame_size = flags = 0;
while (p < end) {
char *str;
- size_t sz;
+ uint64_t sz;
int ret;
/* Decode the item key */
@@ -836,7 +836,7 @@
/* Loop on K/V items */
while (p < end) {
char *str;
- size_t sz;
+ uint64_t sz;
int ret;
/* Decode the item key */