[CrOS MultiDevice] Re-land crash fix for BleConnectionManagerImpl.
Originally landed as: https://chromium-review.googlesource.com/c/1352855 Reverted as: https://chromium-review.googlesource.com/c/chromium/src/+/1354327 First patch set includes original CL, and subsequent patches contain updates to fix the failing test. Original CL descrition: When a SecureChannel disconnects due to authentication failures, BleConnectionManagerImpl invokes the relevant failure callback, which then causes ConnectionAttemptBase to cancel the connection attempt. When the attempt is cancelled, the SecureChannel object is deleted via BleConnectionManagerImpl::ProcessPotentialLingeringChannel(), but BleConnectionManagerImpl::HandleSecureChannelDisconnection() assumed that the object was still valid and tried to to remove itself as an observer, causing a segfault. The fix is to check whether the object has been deleted before attempting to call RemoveObserver(). Bug: 905904, 909883 Change-Id: I770bff8f05865aeac8b7513d7193d0b7a40d056e Reviewed-on: https://chromium-review.googlesource.com/c/1354333Reviewed-by:Ryan Hansberry <hansberry@chromium.org> Commit-Queue: Kyle Horimoto <khorimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#611937}
Showing
Please register or sign in to comment