mirror of https://github.com/citusdata/citus.git
Possible undefined behavior for bit shift in citus_stat_tenants.c
parent
8a8a493b67
commit
4fec8e2138
|
@ -50,7 +50,7 @@ ExecutorEnd_hook_type prev_ExecutorEnd = NULL;
|
|||
#define ONE_QUERY_SCORE 1000000000
|
||||
#define BYTE_TO_BIT 3 /* 2^3 bits/byte */
|
||||
#define TENANTS_STATS_FIELD_BIT_LENGTH(tenantStats, field) (sizeof((tenantStats)->field) \
|
||||
<< BYTE_TO_BIT)
|
||||
<< BYTE_TO_BIT)
|
||||
|
||||
static char AttributeToTenant[MAX_TENANT_ATTRIBUTE_LENGTH] = "";
|
||||
static CmdType AttributeToCommandType = CMD_UNKNOWN;
|
||||
|
@ -609,6 +609,7 @@ ReduceScoreIfNecessary(TenantStats *tenantStats, TimestampTz queryTime)
|
|||
if (periodCountAfterLastScoreReduction > 0)
|
||||
{
|
||||
tenantStats->lastScoreReduction = queryTime;
|
||||
|
||||
/*addtional check to avoid undefined behavior */
|
||||
tenantStats->score = (periodCountAfterLastScoreReduction <
|
||||
TENANTS_STATS_FIELD_BIT_LENGTH(tenantStats, score))
|
||||
|
|
Loading…
Reference in New Issue