Compare commits

...

1 Commits

Author SHA1 Message Date
Conor Patrick
2aa02d44b2 dont return index >= ctap_rk_size()
Fixes issue found by @My1: https://github.com/solokeys/solo/issues/407
2020-03-28 13:23:40 -04:00

View File

@ -1587,18 +1587,15 @@ static int scan_for_next_rk(int index, uint8_t * initialRpIdHash){
if (initialRpIdHash != NULL) { if (initialRpIdHash != NULL) {
memmove(lastRpIdHash, initialRpIdHash, 32); memmove(lastRpIdHash, initialRpIdHash, 32);
index = 0; index = -1;
} }
else else
{ {
ctap_load_rk(index, &rk); ctap_load_rk(index, &rk);
memmove(lastRpIdHash, rk.id.rpIdHash, 32); memmove(lastRpIdHash, rk.id.rpIdHash, 32);
index++;
} }
ctap_load_rk(index, &rk); do
while ( memcmp( rk.id.rpIdHash, lastRpIdHash, 32 ) != 0 )
{ {
index++; index++;
if ((unsigned int)index >= ctap_rk_size()) if ((unsigned int)index >= ctap_rk_size())
@ -1607,6 +1604,7 @@ static int scan_for_next_rk(int index, uint8_t * initialRpIdHash){
} }
ctap_load_rk(index, &rk); ctap_load_rk(index, &rk);
} }
while ( memcmp( rk.id.rpIdHash, lastRpIdHash, 32 ) != 0 );
return index; return index;
} }