mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
NFC: digital: Ensure no DID in NFC-DEP responses
When in Initiator mode, the digital layer's NFC-DEP code always sets the Device ID (DID) value in the ATR_REQ to '0'. This means that subsequent DEP_REQ and DEP_RES frames must never include a DID byte. This is specified in sections 14.8.1.1 and 14.8.2.1 of the NFC Digital Protocol Spec. Currently, the digital layer's NFC-DEP code doesn't enforce this rule so add code to ensure that there is no DID byte in DEP_RES frames. Reviewed-by: Thierry Escande <thierry.escande@linux.intel.com> Tested-by: Thierry Escande <thierry.escande@linux.intel.com> Signed-off-by: Mark A. Greer <mgreer@animalcreek.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
6ce306682f
commit
3bc3f88af5
1 changed files with 5 additions and 2 deletions
|
@ -411,8 +411,11 @@ static void digital_in_recv_dep_res(struct nfc_digital_dev *ddev, void *arg,
|
|||
|
||||
pfb = dep_res->pfb;
|
||||
|
||||
if (DIGITAL_NFC_DEP_DID_BIT_SET(pfb))
|
||||
size++;
|
||||
if (DIGITAL_NFC_DEP_DID_BIT_SET(pfb)) {
|
||||
PROTOCOL_ERR("14.8.2.1");
|
||||
rc = -EIO;
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (size > resp->len) {
|
||||
rc = -EIO;
|
||||
|
|
Loading…
Reference in a new issue