Fix property setting with failure
1, Avoid containing split char ',' in original value.
2, Check value utf-8 length to avoid exceeding the maximum length in
native layer.
Bug: 118357532
Change-Id: Ic2f17c474f5fcf6a513641c0f8f7edd0794decb0
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index d4788e3..95c8f81 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -5545,7 +5545,7 @@
if (value == null) {
value = "";
}
-
+ value.replace(',', ' ');
if (prop != null) {
p = prop.split(",");
}
@@ -5571,7 +5571,13 @@
}
}
- if (propVal.length() > SystemProperties.PROP_VALUE_MAX) {
+ int propValLen = propVal.length();
+ try {
+ propValLen = propVal.getBytes("utf-8").length;
+ } catch (java.io.UnsupportedEncodingException e) {
+ Rlog.d(TAG, "setTelephonyProperty: utf-8 not supported");
+ }
+ if (propValLen > SystemProperties.PROP_VALUE_MAX) {
Rlog.d(TAG, "setTelephonyProperty: property too long phoneId=" + phoneId +
" property=" + property + " value: " + value + " propVal=" + propVal);
return;