BUG/MINOR: peers: fix data_type bit computation more than 32 data_types
This patch fixes the computation of the bit of the current data_type
in some part of code of peer protocol where the computation is limited
to 32bits whereas the bitfield of data_types can support 64bits.
Without this patch it could result in bugs when we will define more
than 32 data_types.
Backport is useless because there is currently less than 32 data_types
diff --git a/src/peers.c b/src/peers.c
index 5f71d1e..87a1284 100644
--- a/src/peers.c
+++ b/src/peers.c
@@ -859,10 +859,10 @@
case STD_T_UINT:
case STD_T_ULL:
case STD_T_DICT:
- data |= 1 << data_type;
+ data |= 1ULL << data_type;
break;
case STD_T_FRQP:
- data |= 1 << data_type;
+ data |= 1ULL << data_type;
intencode(data_type, &chunkq);
intencode(st->table->data_arg[data_type].u, &chunkq);
break;
@@ -1671,7 +1671,7 @@
for (data_type = 0 ; data_type < STKTABLE_DATA_TYPES ; data_type++) {
uint64_t decoded_int;
- if (!((1 << data_type) & st->remote_data))
+ if (!((1ULL << data_type) & st->remote_data))
continue;
decoded_int = intdecode(msg_cur, msg_end);