OSDN Git Service

Fix in getAvailableNetworksResponse() to use correct index
authorJayachandran C <jayachandranc@google.com>
Thu, 2 Mar 2017 02:26:50 +0000 (18:26 -0800)
committerJayachandran C <jayachandranc@google.com>
Thu, 2 Mar 2017 02:29:00 +0000 (18:29 -0800)
Test: Manual
Bug: 35787804
Change-Id: I03e17ee3e2de449c6b38c3dda39d2eb8b2ea7576

libril/ril_service.cpp

index 59a0fd5..c40c36c 100644 (file)
@@ -3824,15 +3824,15 @@ int radio::getAvailableNetworksResponse(android::Parcel &p, int slotId, int requ
             char **resp = (char **) response;
             int numStrings = responseLen / sizeof(char *);
             networks.resize(numStrings/4);
-            for (int i = 0; i < numStrings; i = i + 4) {
-                networks[i].alphaLong = convertCharPtrToHidlString(resp[i]);
-                networks[i].alphaShort = convertCharPtrToHidlString(resp[i + 1]);
-                networks[i].operatorNumeric = convertCharPtrToHidlString(resp[i + 2]);
+            for (int i = 0, j = 0; i < numStrings; i = i + 4, j++) {
+                networks[j].alphaLong = convertCharPtrToHidlString(resp[i]);
+                networks[j].alphaShort = convertCharPtrToHidlString(resp[i + 1]);
+                networks[j].operatorNumeric = convertCharPtrToHidlString(resp[i + 2]);
                 int status = convertOperatorStatusToInt(resp[i + 3]);
                 if (status == -1) {
                     if (e == RIL_E_SUCCESS) responseInfo.error = RadioError::INVALID_RESPONSE;
                 } else {
-                    networks[i].status = (OperatorStatus) status;
+                    networks[j].status = (OperatorStatus) status;
                 }
             }
         }