From b22d8dd77328b53c5fa23a9ba335800a1e33e67e Mon Sep 17 00:00:00 2001 From: Paul Keith Date: Sun, 22 Oct 2017 05:25:25 +0200 Subject: [PATCH] klte-common: libril: Fix RIL_UNSOL_NITZ_TIME_RECEIVED Parcel * Sometimes, the modem is sending 1-2 extra fields with the country mcc, which confuses ServiceStateTracker * Drop the extra data here, instead of in our RIL class [haggertk]: Forward port to ril-caf on lineage-15. Change-Id: Ifbec67bb0dac271226bd8b5471deaf6a2ef33f2b --- libril/ril_service.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/libril/ril_service.cpp b/libril/ril_service.cpp index fa61c52..d91f9cd 100644 --- a/libril/ril_service.cpp +++ b/libril/ril_service.cpp @@ -7019,8 +7019,25 @@ int radio::nitzTimeReceivedInd(int slotId, RLOGE("nitzTimeReceivedInd: invalid response"); return 0; } - hidl_string nitzTime = convertCharPtrToHidlString((char *) response); + hidl_string nitzTime; int64_t timeReceived = android::elapsedRealtime(); + char *resp = strndup((char *) response, responseLen); + char *tmp = resp; + + /* Find the 3rd comma */ + for (int i = 0; i < 3; i++) { + if (tmp != NULL) { + tmp = strchr(tmp + 1, ','); + } + } + + /* Make the 3rd comma the end of the string */ + if (tmp != NULL) { + *tmp = '\0'; + } + + nitzTime = convertCharPtrToHidlString(resp); + free(resp); #if VDBG RLOGD("nitzTimeReceivedInd: nitzTime %s receivedTime %" PRId64, nitzTime.c_str(), timeReceived);