NFC: NCI: Fix max length of General Bytes in ATR_RES
The maximum size of ATR_REQ and ATR_RES is 64 bytes.
The maximum number of General Bytes is calculated by
the maximum number of data bytes in the ATR_REQ/ATR_RES,
substracted by the number of mandatory data bytes.
ATR_REQ: 16 mandatory data bytes, giving a maximum of
48 General Bytes.
ATR_RES: 17 mandatory data bytes, giving a maximum of
47 General Bytes.
Regression introduced in commit a99903ec
.
Signed-off-by: Julien Lefrique <lefrique@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Родитель
3ff24012dd
Коммит
e479ce4797
|
@ -205,6 +205,8 @@ enum nfc_sdp_attr {
|
|||
#define NFC_SENSF_RES_MAXSIZE 18
|
||||
#define NFC_ATR_REQ_MAXSIZE 64
|
||||
#define NFC_ATR_RES_MAXSIZE 64
|
||||
#define NFC_ATR_REQ_GB_MAXSIZE 48
|
||||
#define NFC_ATR_RES_GB_MAXSIZE 47
|
||||
#define NFC_GB_MAXSIZE 48
|
||||
#define NFC_FIRMWARE_NAME_MAXSIZE 32
|
||||
#define NFC_ISO15693_UID_MAXSIZE 8
|
||||
|
|
|
@ -479,24 +479,22 @@ static int nci_store_general_bytes_nfc_dep(struct nci_dev *ndev,
|
|||
switch (ntf->activation_rf_tech_and_mode) {
|
||||
case NCI_NFC_A_PASSIVE_POLL_MODE:
|
||||
case NCI_NFC_F_PASSIVE_POLL_MODE:
|
||||
/* ATR_RES general bytes at offset 15 */
|
||||
ndev->remote_gb_len = min_t(__u8,
|
||||
(ntf->activation_params.poll_nfc_dep.atr_res_len
|
||||
- NFC_ATR_RES_GT_OFFSET),
|
||||
NFC_MAX_GT_LEN);
|
||||
NFC_ATR_RES_GB_MAXSIZE);
|
||||
memcpy(ndev->remote_gb,
|
||||
(ntf->activation_params.poll_nfc_dep .atr_res
|
||||
(ntf->activation_params.poll_nfc_dep.atr_res
|
||||
+ NFC_ATR_RES_GT_OFFSET),
|
||||
ndev->remote_gb_len);
|
||||
break;
|
||||
|
||||
case NCI_NFC_A_PASSIVE_LISTEN_MODE:
|
||||
case NCI_NFC_F_PASSIVE_LISTEN_MODE:
|
||||
/* ATR_REQ general bytes at offset 14 */
|
||||
ndev->remote_gb_len = min_t(__u8,
|
||||
(ntf->activation_params.listen_nfc_dep.atr_req_len
|
||||
- NFC_ATR_REQ_GT_OFFSET),
|
||||
NFC_MAX_GT_LEN);
|
||||
NFC_ATR_REQ_GB_MAXSIZE);
|
||||
memcpy(ndev->remote_gb,
|
||||
(ntf->activation_params.listen_nfc_dep.atr_req
|
||||
+ NFC_ATR_REQ_GT_OFFSET),
|
||||
|
|
Загрузка…
Ссылка в новой задаче