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

Commit 9ee6f302 authored by Brad Ebinger's avatar Brad Ebinger
Browse files

Bound Telecom logging recursion

Put a bound on the recursion in Session#toString
to ensure we do not accidently cause a Stack overflow

Bug: 186694546
Test: atest TeleServiceTests
Merged-In: I52f44dd02d0d860d0894e9b84fded8cf5ff5a18e
Change-Id: I52f44dd02d0d860d0894e9b84fded8cf5ff5a18e
parent c2c84d16
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -453,19 +453,19 @@ public class Session {

    @Override
    public String toString() {
        if (mParentSession != null && mIsStartedFromActiveSession) {
        Session sessionToPrint = this;
        if (getParentSession() != null && isStartedFromActiveSession()) {
            // Log.startSession was called from within another active session. Use the parent's
            // Id instead of the child to reduce confusion.
            return mParentSession.toString();
        } else {
            sessionToPrint = getRootSession("toString");
        }
        StringBuilder methodName = new StringBuilder();
            methodName.append(getFullMethodPath(false /*truncatePath*/));
            if (mOwnerInfo != null && !mOwnerInfo.isEmpty()) {
        methodName.append(sessionToPrint.getFullMethodPath(false /*truncatePath*/));
        if (sessionToPrint.getOwnerInfo() != null && !sessionToPrint.getOwnerInfo().isEmpty()) {
            methodName.append("(");
                methodName.append(mOwnerInfo);
            methodName.append(sessionToPrint.getOwnerInfo());
            methodName.append(")");
        }
            return methodName.toString() + "@" + getFullSessionId();
        }
        return methodName.toString() + "@" + sessionToPrint.getFullSessionId();
    }
}