summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBhuvan Varshney <bvarshne@codeaurora.org>2019-05-27 11:09:51 +0530
committerBhuvan Varshney <bvarshne@codeaurora.org>2019-05-27 11:46:56 +0530
commita552906575d423f1eeda1f37e41f77bcf0c5d071 (patch)
treecdebfe8ce3c24f7397ed6ada880c5abdb2174e14
parent0b15b7043cc4073a1ebd2e7def9bc626dfb4408d (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.cpp10
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);
/*