diff options
author | Bhuvan Varshney <bvarshne@codeaurora.org> | 2019-05-27 11:09:51 +0530 |
---|---|---|
committer | Bhuvan Varshney <bvarshne@codeaurora.org> | 2019-05-27 11:46:56 +0530 |
commit | a552906575d423f1eeda1f37e41f77bcf0c5d071 (patch) | |
tree | cdebfe8ce3c24f7397ed6ada880c5abdb2174e14 | |
parent | 0b15b7043cc4073a1ebd2e7def9bc626dfb4408d (diff) |
NFC: Fix issue for transit config
Segmentation fault is observed due to NULL pointer
dereference on TransitConfig structure variable.
Added support for trasit configuration by assigning
appropriate pointer to the structure variable.
Change-Id: I3750952f38758faae7bc9bd742643c0a3c547231
-rw-r--r-- | 1.2/default/NqNfc.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/1.2/default/NqNfc.cpp b/1.2/default/NqNfc.cpp index 543b045..95d04ec 100644 --- a/1.2/default/NqNfc.cpp +++ b/1.2/default/NqNfc.cpp @@ -52,6 +52,16 @@ Return<void> NqNfc::ioctl(uint64_t ioctlType, const hidl_vec<uint8_t>& inputData * underlying HAL implementation since its an inout argument */ memcpy(&inpOutData, pInOutData, sizeof(nfc_nci_IoctlInOutData_t)); + if (ioctlType == HAL_NFC_IOCTL_SET_TRANSIT_CONFIG) { + /*As transit configurations are appended at the end of + nfc_nci_IoctlInOutData_t, Assign appropriate pointer to TransitConfig*/ + if (inpOutData.inp.data.transitConfig.len == 0) { + inpOutData.inp.data.transitConfig.val = NULL; + } else { + inpOutData.inp.data.transitConfig.val = + ((char *)pInOutData) + sizeof(nfc_nci_IoctlInOutData_t); + } + } status = phNxpNciHal_ioctl(ioctlType, &inpOutData); /* |