summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJizhou Liao <Jizhou.Liao@nxp.com>2016-06-20 11:56:46 -0700
committerMartijn Coenen <maco@google.com>2016-06-24 09:54:13 +0200
commit0edf35643cf31d3655edb23cd8ab04020b9ebba1 (patch)
treedab71bff3e1a2431082992ca10fc8a87d84a0055
parent839f30fd187474a7c8356e645125caca1d197533 (diff)
downloadandroid_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-xnci/jni/RoutingManager.cpp16
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)