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 7d1c794556c3f4a3e4dbf97f5b9a41c6ab00d7ae..d5e669b0dedf2b4d3db9bf79a6fcb0b42b05c9c0 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;
This page took 0.02537 seconds and 5 git commands to generate.