NFC: digital: NFC-A SEL_RES must be one byte
authorMark Greer <mgreer@animalcreek.com>
Thu, 15 Jun 2017 17:46:15 +0000 (10:46 -0700)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 22 Jun 2017 22:19:59 +0000 (00:19 +0200)
Section 4.8.2 (SEL_RES Response) of NFC Forum's NFC Digital Protocol
Technical Specification dated 2010-11-17 clearly states that the size
of a SEL_RES Response is one byte.  Enforce this restriction in the
code.

Signed-off-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
net/nfc/digital_technology.c

index 3cc3448da524c4b99bb8e6068bc077c56bac6e6b..2021d1d58a75e8bca71625c3d34e1a05a9cce89d 100644 (file)
@@ -27,6 +27,7 @@
 
 #define DIGITAL_SDD_RES_CT  0x88
 #define DIGITAL_SDD_RES_LEN 5
+#define DIGITAL_SEL_RES_LEN 1
 
 #define DIGITAL_SEL_RES_NFCID1_COMPLETE(sel_res) (!((sel_res) & 0x04))
 #define DIGITAL_SEL_RES_IS_T2T(sel_res) (!((sel_res) & 0x60))
@@ -299,7 +300,7 @@ static void digital_in_recv_sel_res(struct nfc_digital_dev *ddev, void *arg,
                }
        }
 
-       if (!resp->len) {
+       if (resp->len != DIGITAL_SEL_RES_LEN) {
                rc = -EIO;
                goto exit;
        }