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

Commit cdf06a84 authored by Yujing Gu's avatar Yujing Gu Committed by Łukasz Patron
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 1e1f3eb2
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -2847,8 +2847,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: