mirror of
https://codeberg.org/scip/pcp.git
synced 2025-12-17 03:50:57 +01:00
fixed _gen_ctr_nonce(), reported in #12: invalid ctr comparision did lead to counter underflow
This commit is contained in:
@@ -708,6 +708,8 @@ uint64_t _get_nonce_ctr(byte *nonce) {
|
|||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fprintf(stderr, "ctr size: %d ", i);
|
||||||
|
|
||||||
switch(i) {
|
switch(i) {
|
||||||
case 1:
|
case 1:
|
||||||
ctr = nonce[1];
|
ctr = nonce[1];
|
||||||
@@ -796,12 +798,12 @@ byte *_gen_ctr_nonce(uint64_t ctr) {
|
|||||||
m64 = htobe64(ctr);
|
m64 = htobe64(ctr);
|
||||||
memcpy(&nonce[1], &m64, 8);
|
memcpy(&nonce[1], &m64, 8);
|
||||||
}
|
}
|
||||||
else if(ctr < m32 && ctr > m16) {
|
else if(ctr <= m32 && ctr > m16) {
|
||||||
i = 4;
|
i = 4;
|
||||||
m32 = htobe32(ctr);
|
m32 = htobe32(ctr);
|
||||||
memcpy(&nonce[1], &m32, 4);
|
memcpy(&nonce[1], &m32, 4);
|
||||||
}
|
}
|
||||||
else if(ctr < m16 && ctr > m8) {
|
else if(ctr <= m16 && ctr > m8) {
|
||||||
i = 2;
|
i = 2;
|
||||||
m16 = htobe16(ctr);
|
m16 = htobe16(ctr);
|
||||||
memcpy(&nonce[1], &m16, 2);
|
memcpy(&nonce[1], &m16, 2);
|
||||||
|
|||||||
Reference in New Issue
Block a user