Skip to content

Commit

Permalink
Fixed a zero allocation error when reading an iso15693 nfc tag with n…
Browse files Browse the repository at this point in the history
…o additional blocks. (#3229)

Co-authored-by: gornekich <[email protected]>
  • Loading branch information
pborsutzki and gornekich authored Dec 2, 2023
1 parent 04cead1 commit c6a14e1
Showing 1 changed file with 23 additions and 21 deletions.
44 changes: 23 additions & 21 deletions lib/nfc/protocols/iso15693_3/iso15693_3_poller_i.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,28 +108,30 @@ Iso15693_3Error iso15693_3_poller_activate(Iso15693_3Poller* instance, Iso15693_
break;
}

// Read blocks: Optional command
simple_array_init(data->block_data, system_info->block_count * system_info->block_size);
ret = iso15693_3_poller_read_blocks(
instance,
simple_array_get_data(data->block_data),
system_info->block_count,
system_info->block_size);
if(ret != Iso15693_3ErrorNone) {
ret = iso15693_3_poller_filter_error(ret);
break;
}

// Get block security status: Optional command
simple_array_init(data->block_security, system_info->block_count);

ret = iso15693_3_poller_get_blocks_security(
instance, simple_array_get_data(data->block_security), system_info->block_count);
if(ret != Iso15693_3ErrorNone) {
ret = iso15693_3_poller_filter_error(ret);
break;
if(system_info->block_count > 0) {
// Read blocks: Optional command
simple_array_init(
data->block_data, system_info->block_count * system_info->block_size);
ret = iso15693_3_poller_read_blocks(
instance,
simple_array_get_data(data->block_data),
system_info->block_count,
system_info->block_size);
if(ret != Iso15693_3ErrorNone) {
ret = iso15693_3_poller_filter_error(ret);
break;
}

// Get block security status: Optional command
simple_array_init(data->block_security, system_info->block_count);

ret = iso15693_3_poller_get_blocks_security(
instance, simple_array_get_data(data->block_security), system_info->block_count);
if(ret != Iso15693_3ErrorNone) {
ret = iso15693_3_poller_filter_error(ret);
break;
}
}

} while(false);

return ret;
Expand Down

0 comments on commit c6a14e1

Please sign in to comment.