OSDN Git Service

Fix crash by checking for NULL token at the beginning of RIL_onRequestComplete
authorJayachandran C <jayc@motorola.com>
Mon, 4 Aug 2014 22:48:01 +0000 (15:48 -0700)
committerEtan Cohen <etancohen@google.com>
Mon, 4 Aug 2014 23:02:11 +0000 (16:02 -0700)
 - RILD crashes when token is NULL because no NULL check at the beginning

libril/ril.cpp

index a25d536..6b3fc6c 100644 (file)
@@ -4018,6 +4018,11 @@ RIL_onRequestComplete(RIL_Token t, RIL_Errno e, void *response, size_t responsel
 
     pRI = (RequestInfo *)t;
 
+    if (!checkAndDequeueRequestInfo(pRI)) {
+        RLOGE ("RIL_onRequestComplete: invalid RIL_Token");
+        return;
+    }
+
     socket_id = pRI->socket_id;
 #if (SIM_COUNT >= 2)
     if (socket_id == RIL_SOCKET_2) {
@@ -4036,11 +4041,6 @@ RIL_onRequestComplete(RIL_Token t, RIL_Errno e, void *response, size_t responsel
 #endif
     RLOGD("RequestComplete, %s", rilSocketIdToString(socket_id));
 
-    if (!checkAndDequeueRequestInfo(pRI)) {
-        RLOGE ("RIL_onRequestComplete: invalid RIL_Token");
-        return;
-    }
-
     if (pRI->local > 0) {
         // Locally issued command...void only!
         // response does not go back up the command socket