diff options
author | Mark A. Greer <mgreer@animalcreek.com> | 2014-09-23 23:38:06 (GMT) |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2014-11-28 11:38:36 (GMT) |
commit | 3e6b0de8053ae724931799f1b5d4f009b9fc4b44 (patch) | |
tree | ae0d1779f8765efecee4fdb552f5634992f2c0a1 /net/nfc/digital_dep.c | |
parent | 05afedcb89189df5cea30a13b2a5b4aa70572749 (diff) | |
download | linux-3e6b0de8053ae724931799f1b5d4f009b9fc4b44.tar.xz |
NFC: digital: Ensure no NAD byte in DEP_REQ and DEP_RES frames
According to chapter 14 of the NFC-DEP Digital
Protocol Spec., the NAD byte should never be
present in DEP_REQ or DEP_RES frames. However,
this is not enforced so add that enforcement code.
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>
Diffstat (limited to 'net/nfc/digital_dep.c')
-rw-r--r-- | net/nfc/digital_dep.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/net/nfc/digital_dep.c b/net/nfc/digital_dep.c index 7d1c794..d5e669b 100644 --- a/net/nfc/digital_dep.c +++ b/net/nfc/digital_dep.c @@ -420,6 +420,11 @@ static void digital_in_recv_dep_res(struct nfc_digital_dev *ddev, void *arg, goto error; } + if (DIGITAL_NFC_DEP_NAD_BIT_SET(pfb)) { + rc = -EIO; + goto exit; + } + if (size > resp->len) { rc = -EIO; goto error; @@ -572,6 +577,11 @@ static void digital_tg_recv_dep_req(struct nfc_digital_dev *ddev, void *arg, goto exit; } + if (DIGITAL_NFC_DEP_NAD_BIT_SET(pfb)) { + rc = -EIO; + goto exit; + } + if (size > resp->len) { rc = -EIO; goto exit; |