diff options
author | Jizhou Liao <Jizhou.Liao@nxp.com> | 2016-06-20 11:56:46 -0700 |
---|---|---|
committer | Martijn Coenen <maco@google.com> | 2016-06-24 09:54:13 +0200 |
commit | 0edf35643cf31d3655edb23cd8ab04020b9ebba1 (patch) | |
tree | dab71bff3e1a2431082992ca10fc8a87d84a0055 | |
parent | 839f30fd187474a7c8356e645125caca1d197533 (diff) | |
download | android_packages_apps_Nfc-0edf35643cf31d3655edb23cd8ab04020b9ebba1.tar.gz android_packages_apps_Nfc-0edf35643cf31d3655edb23cd8ab04020b9ebba1.tar.bz2 android_packages_apps_Nfc-0edf35643cf31d3655edb23cd8ab04020b9ebba1.zip |
Fix HCE can't handle last empty I-block of a chain
If the Iāblock received has a zero length and it is the last packet
of a chain, it should not be ignored.
Change-Id: Ibab295516e3dd44d8b4fa1f80a0a8e4bcbe4f435
-rwxr-xr-x | nci/jni/RoutingManager.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/nci/jni/RoutingManager.cpp b/nci/jni/RoutingManager.cpp index 6a8a452b..17ccf559 100755 --- a/nci/jni/RoutingManager.cpp +++ b/nci/jni/RoutingManager.cpp @@ -454,20 +454,20 @@ void RoutingManager::notifyDeactivated (UINT8 technology) void RoutingManager::handleData (UINT8 technology, const UINT8* data, UINT32 dataLen, tNFA_STATUS status) { - if (dataLen <= 0) - { - ALOGE("no data"); - goto TheEnd; - } - if (status == NFA_STATUS_CONTINUE) { - mRxDataBuffer.insert (mRxDataBuffer.end(), &data[0], &data[dataLen]); //append data; more to come + if (dataLen > 0) + { + mRxDataBuffer.insert (mRxDataBuffer.end(), &data[0], &data[dataLen]); //append data; more to come + } return; //expect another NFA_CE_DATA_EVT to come } else if (status == NFA_STATUS_OK) { - mRxDataBuffer.insert (mRxDataBuffer.end(), &data[0], &data[dataLen]); //append data + if (dataLen > 0) + { + mRxDataBuffer.insert (mRxDataBuffer.end(), &data[0], &data[dataLen]); //append data + } //entire data packet has been received; no more NFA_CE_DATA_EVT } else if (status == NFA_STATUS_FAILED) |