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

Commit 904eb826 authored by Xiao Ma's avatar Xiao Ma
Browse files

Fix the potential double transition in DhcpState#enter

The double transition problem might happen when interface is gone by
accident after starting DhcpClient. The StateMachine doesn’t allow
to call transitionTo() in enter().
Use deferMessage() instead to avoid this crash.

Bug: 145182281
Test: manual
Merged-In: I03c4161a01861b47cf878945f7f5cc77c821cd57
Change-Id: I03c4161a01861b47cf878945f7f5cc77c821cd57
parent 90b9ebe5
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -959,7 +959,9 @@ public class DhcpClient extends StateMachine {
                Log.e(TAG, "Fail to start DHCP Packet Handler");
            }
            notifyFailure();
            transitionTo(mStoppedState);
            // We cannot call transitionTo because a transition is still in progress.
            // Instead, ensure that we process CMD_STOP_DHCP as soon as the transition is complete.
            deferMessage(obtainMessage(CMD_STOP_DHCP));
        }

        @Override