Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3186d28e authored by Yujing Gu's avatar Yujing Gu
Browse files

Truncate baseband version string to 45 characters at most

Android property value is limited to 91 characters, but low layer could
pass a larger version string. To avoid runtime exception, truncate the
string from the beginning and keep the end of the version.

Bug: 169170160
Change-Id: I0f35d7f086ef040d6c8921a602e20d17f2b193f5
parent c32b0ccf
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -2873,8 +2873,21 @@ public class GsmCdmaPhone extends Phone {
                }

                if (DBG) logd("Baseband version: " + ar.result);
                /* Android property value is limited to 91 characters, but low layer
                 could pass a larger version string. To avoid runtime exception,
                 truncate the string baseband version string to 45 characters at most
                 for this per sub property. Since the latter part of the version string
                 is meaningful, truncated the version string from the beginning and
                 keep the end of the version.
                */
                String version = (String)ar.result;
                if (version != null) {
                    int length = version.length();
                    final int MAX_VERSION_LEN = SystemProperties.PROP_VALUE_MAX/2;
                    TelephonyManager.from(mContext).setBasebandVersionForPhone(getPhoneId(),
                        (String)ar.result);
                            length <= MAX_VERSION_LEN ? version
                                : version.substring(length - MAX_VERSION_LEN, length));
                }
            break;

            case EVENT_GET_IMEI_DONE: