comparison hash.c @ 2346:0111c8344477

Fix some issues identified by asan/ubsan
author Michael Pavone <pavone@retrodev.com>
date Sat, 07 Oct 2023 18:04:35 -0700
parents 5ceb316c479a
children
comparison
equal deleted inserted replaced
2345:c76c81c21ae5 2346:0111c8344477
24 { 24 {
25 uint32_t state[5], w[80]; 25 uint32_t state[5], w[80];
26 memcpy(state, hash, sizeof(state)); 26 memcpy(state, hash, sizeof(state));
27 for (uint32_t src = 0; src < 64; src += 4) 27 for (uint32_t src = 0; src < 64; src += 4)
28 { 28 {
29 w[src >> 2] = chunk[src] << 24 | chunk[src+1] << 16 | chunk[src+2] << 8 | chunk[src+3]; 29 w[src >> 2] = ((uint32_t)chunk[src]) << 24 | chunk[src+1] << 16 | chunk[src+2] << 8 | chunk[src+3];
30 } 30 }
31 for (uint32_t cur = 16; cur < 80; cur++) 31 for (uint32_t cur = 16; cur < 80; cur++)
32 { 32 {
33 w[cur] = rotleft(w[cur-3] ^ w[cur-8] ^ w[cur-14] ^ w[cur-16], 1); 33 w[cur] = rotleft(w[cur-3] ^ w[cur-8] ^ w[cur-14] ^ w[cur-16], 1);
34 } 34 }