Merge "Revert "reference-ril: fix emulator gateway"" am: fe21a1c2d8 am: bf10103224
am: a93069b72b
Change-Id: I495599cfa1207ce0fd712b86f4ff4a0d9a0d44d7
diff --git a/include/telephony/ril.h b/include/telephony/ril.h
index 3d40b8f..8377308 100644
--- a/include/telephony/ril.h
+++ b/include/telephony/ril.h
@@ -2401,8 +2401,8 @@
* SUCCESS
* RADIO_NOT_AVAILABLE (radio resetting)
* PASSWORD_INCORRECT
- * (code is invalid)
* SIM_ABSENT
+ * (code is invalid)
* INTERNAL_ERR
* NO_MEMORY
* NO_RESOURCES
@@ -3055,7 +3055,7 @@
* RADIO_NOT_AVAILABLE, OP_NOT_ALLOWED_BEFORE_REG_TO_NW,
* OP_NOT_ALLOWED_DURING_VOICE_CALL, REQUEST_NOT_SUPPORTED,
* INVALID_ARGUMENTS, INTERNAL_ERR, NO_MEMORY, NO_RESOURCES,
- * SIM_ABSENT and CANCELLED
+ * CANCELLED and SIM_ABSENT
*
* See also: RIL_REQUEST_DEACTIVATE_DATA_CALL
*/
diff --git a/libril/RilSapSocket.cpp b/libril/RilSapSocket.cpp
index 664e6a9..211371e 100644
--- a/libril/RilSapSocket.cpp
+++ b/libril/RilSapSocket.cpp
@@ -55,10 +55,9 @@
sap_socket->onRequestComplete(t,e,response,responselen);
} else {
RLOGE("Invalid socket id");
- if (request->curr->payload) {
- free(request->curr->payload);
+ if (request->curr) {
+ free(request->curr);
}
- free(request->curr);
free(request);
}
}
@@ -234,6 +233,12 @@
void RilSapSocket::onRequestComplete(RIL_Token t, RIL_Errno e, void *response,
size_t response_len) {
SapSocketRequest* request= (SapSocketRequest*)t;
+
+ if (!request || !request->curr) {
+ RLOGE("RilSapSocket::onRequestComplete: request/request->curr is NULL");
+ return;
+ }
+
MsgHeader *hdr = request->curr;
MsgHeader rsp;
diff --git a/libril/sap_service.cpp b/libril/sap_service.cpp
index b945174..cd5b137 100644
--- a/libril/sap_service.cpp
+++ b/libril/sap_service.cpp
@@ -106,11 +106,13 @@
Return<void> SapImpl::addPayloadAndDispatchRequest(MsgHeader *msg, uint16_t reqLen,
uint8_t *reqPtr) {
- msg->payload = (pb_bytes_array_t *)malloc(sizeof(pb_bytes_array_t) - 1 + reqLen);
- if (msg->payload == NULL) {
+ pb_bytes_array_t *payload = (pb_bytes_array_t *) malloc(sizeof(pb_bytes_array_t) - 1 + reqLen);
+ if (payload == NULL) {
sendFailedResponse(msg->id, msg->token, 2, reqPtr, msg);
return Void();
}
+
+ msg->payload = payload;
msg->payload->size = reqLen;
memcpy(msg->payload->bytes, reqPtr, reqLen);
@@ -120,7 +122,7 @@
sapSocket->dispatchRequest(msg);
} else {
RLOGE("SapImpl::addPayloadAndDispatchRequest: sapSocket is null");
- sendFailedResponse(msg->id, msg->token, 3, msg->payload, reqPtr, msg);
+ sendFailedResponse(msg->id, msg->token, 3, payload, reqPtr, msg);
return Void();
}
free(msg->payload);