mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-01 22:48:25 +00:00
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
This commit is contained in:
parent
01928ae56b
commit
08b0f6780c
@ -859,10 +859,10 @@ static int peer_prepare_switchmsg(char *msg, size_t size, struct peer_prep_param
|
||||
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 @@ static int peer_treat_updatemsg(struct appctx *appctx, struct peer *p, int updt,
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user