Add carrierKeyLength parameter in RIL_CarrierInfoForImsiEncryption structure
Bug: 69477444
CRs-Fixed: 2145759
Test: Manual
Change-Id: I10b4ebee981b8b74be75aa2237294db64bdfc5de
diff --git a/include/telephony/ril.h b/include/telephony/ril.h
index 1c29fd3..3d40b8f 100644
--- a/include/telephony/ril.h
+++ b/include/telephony/ril.h
@@ -757,6 +757,7 @@
uint8_t * carrierKey; /* Public Key from the Carrier used to encrypt the
* IMSI/IMPI.
*/
+ int32_t carrierKeyLength; /* Length of the Public Key. */
char * keyIdentifier; /* The keyIdentifier Attribute value pair that helps
* a server locate the private key to decrypt the
* permanent identity.
diff --git a/libril/ril_service.cpp b/libril/ril_service.cpp
index 5cb65d1..9b9b641 100644
--- a/libril/ril_service.cpp
+++ b/libril/ril_service.cpp
@@ -2806,9 +2806,9 @@
memsetAndFreeStrings(2, imsiEncryption.mnc, imsiEncryption.mcc);
return Void();
}
- int32_t lSize = data.carrierKey.size();
- imsiEncryption.carrierKey = new uint8_t[lSize];
- memcpy(imsiEncryption.carrierKey, data.carrierKey.data(), lSize);
+ imsiEncryption.carrierKeyLength = data.carrierKey.size();
+ imsiEncryption.carrierKey = new uint8_t[imsiEncryption.carrierKeyLength];
+ memcpy(imsiEncryption.carrierKey, data.carrierKey.data(), imsiEncryption.carrierKeyLength);
imsiEncryption.expirationTime = data.expirationTime;
CALL_ONREQUEST(pRI->pCI->requestNumber, &imsiEncryption,
sizeof(RIL_CarrierInfoForImsiEncryption), pRI, mSlotId);