From b24fa991490e075cbcdc34986260201884048076 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Thu, 13 Feb 2014 12:14:52 +0100 Subject: [PATCH] ensure that all blocks are read before returing data --- lib/Biblio/RFID/Reader/librfid.pm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/Biblio/RFID/Reader/librfid.pm b/lib/Biblio/RFID/Reader/librfid.pm index 8f6a96d..44afc28 100644 --- a/lib/Biblio/RFID/Reader/librfid.pm +++ b/lib/Biblio/RFID/Reader/librfid.pm @@ -158,6 +158,13 @@ sub read_blocks { $blocks->{$sid}->[$1] = hex2bytes($2) if m/page=(\d+).*data=\s*(.+)/; }; + + my $blocks_read = 0; + $blocks_read += $_ foreach grep { defined $blocks->{$sid}->[$_] } ( 4 .. 6 ); + if ( $blocks_read < (4 + 5 + 6) ) { + warn "# invalidate partial read of SmartX card\n"; + $blocks = undef; + } } warn "# read_blocks ",dump($blocks); return $blocks; -- 2.20.1