@@ -1295,6 +1295,12 @@ void hts_read(const lf_hitag_data_t *payload, bool ledcontrol) {
12951295
12961296 while ((BUTTON_PRESS () == false) && (data_available () == false)) {
12971297
1298+ if (payload -> page_count == 0 ) {
1299+ if (page_addr > tag .max_page ) break ;
1300+ } else if (page_addr > 255 || page_addr >= payload -> page + payload -> page_count ) {
1301+ break ;
1302+ }
1303+
12981304 WDT_HIT ();
12991305
13001306 size_t rxlen = 0 ;
@@ -1312,7 +1318,7 @@ void hts_read(const lf_hitag_data_t *payload, bool ledcontrol) {
13121318
13131319 if (rxlen != 40 ) {
13141320 DBG Dbprintf ("Read page failed!" );
1315- card .pages_reason [page_index ] = -4 ;
1321+ card .pages_reason [page_index ] = -11 ;
13161322 // status = PM3_ERFTRANS;
13171323 // goto read_end;
13181324 page_addr ++ ;
@@ -1362,18 +1368,12 @@ void hts_read(const lf_hitag_data_t *payload, bool ledcontrol) {
13621368 //if the authentication is done with a challenge the key and password are unknown
13631369 DBG Dbprintf ("Page[ 2]: __ __ __ __" );
13641370 DBG Dbprintf ("Page[ 3]: __ __ __ __" );
1365- card .pages_reason [page_index ++ ] = -4 ;
1366- card .pages_reason [page_index ++ ] = -4 ;
1371+ card .pages_reason [page_index ++ ] = -11 ;
1372+ card .pages_reason [page_index ++ ] = -11 ;
13671373 }
13681374 // since page 2+3 are not accessible when LKP == 1 and AUT == 1 fastforward to next readable page
13691375 page_addr = 4 ;
13701376 }
1371-
1372- if (payload -> page_count == 0 ) {
1373- if (page_addr > tag .max_page ) break ;
1374- } else if (page_addr > 255 || page_addr >= payload -> page + payload -> page_count ) {
1375- break ;
1376- }
13771377 }
13781378
13791379read_end :
0 commit comments