mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 03:09:34 +03:00
Explicit integer promotion for bit shift operations
Explicitly promote variables to correct type. Undefined behavior is reported because length of int is not well defined by C standard. Issue #4883 Signed-off-by: Gvozden Neskovic <neskovic@gmail.com>
This commit is contained in:
parent
031d7c2fe6
commit
4ca9c1de12
@ -76,7 +76,8 @@ SHA256Transform(uint32_t *H, const uint8_t *cp)
|
|||||||
uint32_t a, b, c, d, e, f, g, h, t, T1, T2, W[64];
|
uint32_t a, b, c, d, e, f, g, h, t, T1, T2, W[64];
|
||||||
|
|
||||||
for (t = 0; t < 16; t++, cp += 4)
|
for (t = 0; t < 16; t++, cp += 4)
|
||||||
W[t] = (cp[0] << 24) | (cp[1] << 16) | (cp[2] << 8) | cp[3];
|
W[t] = ((uint32_t)cp[0] << 24) | ((uint32_t)cp[1] << 16) |
|
||||||
|
((uint32_t)cp[2] << 8) | (uint32_t)cp[3];
|
||||||
|
|
||||||
for (t = 16; t < 64; t++)
|
for (t = 16; t < 64; t++)
|
||||||
W[t] = sigma1(W[t - 2]) + W[t - 7] +
|
W[t] = sigma1(W[t - 2]) + W[t - 7] +
|
||||||
|
@ -600,7 +600,7 @@ spa_tx_assign_add_nsecs(spa_t *spa, uint64_t nsecs)
|
|||||||
spa_stats_history_t *ssh = &spa->spa_stats.tx_assign_histogram;
|
spa_stats_history_t *ssh = &spa->spa_stats.tx_assign_histogram;
|
||||||
uint64_t idx = 0;
|
uint64_t idx = 0;
|
||||||
|
|
||||||
while (((1 << idx) < nsecs) && (idx < ssh->size - 1))
|
while (((1ULL << idx) < nsecs) && (idx < ssh->size - 1))
|
||||||
idx++;
|
idx++;
|
||||||
|
|
||||||
atomic_inc_64(&((kstat_named_t *)ssh->private)[idx].value.ui64);
|
atomic_inc_64(&((kstat_named_t *)ssh->private)[idx].value.ui64);
|
||||||
|
Loading…
Reference in New Issue
Block a user