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

Commit 655252ed authored by Bernardo Rufino's avatar Bernardo Rufino
Browse files

Perform null check before updating originating tokens

Turns out it's possible that when the callback is processed there is no
process attached to the ServiceRecord despite it being allowed for bg
activity starts "by start". This can happen for example if we call
allowBgActivityStartsOnServiceStart() twice without a process attached.

This was handled before ag/12559801, so also needs to be handled in the
new code-path.

Bug: 176813978
Test: atest BackgroundActivityLaunchTest
Change-Id: I2024f5cb4da78a93c868a63e45c00567c20848ba
parent 7b14bd63
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -749,9 +749,15 @@ final class ServiceRecord extends Binder implements ComponentName.WithComponentN
                        // There are other callbacks in the queue, let's just update the originating
                        // token
                        if (mIsAllowedBgActivityStartsByStart) {
                            // mAppForAllowingBgActivityStartsByStart can be null here for example
                            // if get 2 calls to allowBgActivityStartsOnServiceStart() without a
                            // process attached to this ServiceRecord, so we need to perform a null
                            // check here.
                            if (mAppForAllowingBgActivityStartsByStart != null) {
                                mAppForAllowingBgActivityStartsByStart
                                        .addOrUpdateAllowBackgroundActivityStartsToken(
                                                this, getExclusiveOriginatingToken());
                            }
                        } else {
                            Slog.wtf(TAG,
                                    "Service callback to revoke bg activity starts by service "