OSDN Git Service

NFC: digital: Ensure no NAD byte in DEP_REQ and DEP_RES frames
authorMark A. Greer <mgreer@animalcreek.com>
Tue, 23 Sep 2014 23:38:06 +0000 (16:38 -0700)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 28 Nov 2014 11:38:36 +0000 (12:38 +0100)
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>
net/nfc/digital_dep.c

index 7d1c794..d5e669b 100644 (file)
@@ -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;