@@ -126,11 +126,6 @@ bool UnitFinger2::begin()
126126 return false ;
127127 }
128128
129- if (!wakeup () || !writeSystemRegister (RegisterID::ScoreLevel, _cfg.score_level )) {
130- M5_LIB_LOGE (" Failed to writeSystemRegister" );
131- return false ;
132- }
133-
134129 // Get maximum page id
135130 SystemBasicParams params{};
136131 if (!wakeup () || !readSystemParams (params)) {
@@ -565,12 +560,6 @@ bool UnitFinger2::writeSystemRegister(const finger2::RegisterID reg_id, const ui
565560{
566561 // Check args
567562 switch (reg_id) {
568- case RegisterID::ScoreLevel:
569- if (value < 1 || value > 5 ) {
570- M5_LIB_LOGE (" ScoreLevel must be 1 - 5 (%u)" , value);
571- return false ;
572- }
573- break ;
574563 case RegisterID::PacketSize:
575564 if (value > 3 ) {
576565 M5_LIB_LOGE (" PacketSize must be 0 - 3 (%u)" , value);
@@ -593,12 +582,12 @@ bool UnitFinger2::writeSystemRegister(const finger2::RegisterID reg_id, const ui
593582 return transceive_command (pkt, CMD_WRITE_REGISTER , _address, params, sizeof (params));
594583}
595584
596- bool UnitFinger2::readInformationPage (uint8_t inf [512 ])
585+ bool UnitFinger2::readInformationPage (uint8_t info [512 ])
597586{
598- if (!inf ) {
587+ if (!info ) {
599588 return false ;
600589 }
601- memset (inf , 0x00 , 512 );
590+ memset (info , 0x00 , 512 );
602591
603592 Packet pkt{};
604593 if (!transceive_command (pkt, CMD_READ_FLASH_INFORMATION , _address)) {
@@ -614,10 +603,16 @@ bool UnitFinger2::readInformationPage(uint8_t inf[512])
614603 break ;
615604 }
616605 uint16_t sz = (((uint16_t )rbuf[7 ]) << 8 ) | (uint16_t )rbuf[8 ];
617- memcpy (inf + pos, rbuf.data () + 9 , sz - 2 );
618- pos += sz - 2 ;
606+ if (sz <= 2 ) {
607+ break ;
608+ }
609+ sz -= 2 ;
610+ if (pos + sz < 512 ) {
611+ memcpy (info + pos, rbuf.data () + 9 , sz);
612+ }
613+ pos += sz;
619614 if (confirm == PID_TERMINATE_DATA ) {
620- return true ;
615+ return pos == 512 ;
621616 }
622617 }
623618 return false ;
0 commit comments