Fix use after free in DeviceMediaToMojoAdapter
In Issue 807887, ClusterFuzz provided a very useful stack trace demonstrating a use after free, which is likely the same as Issue 777608. Root cause was a Mojo connection error getting invoked on a base::Unretained() pointer to a deleted object. I added a unit test case the reproduced the issue before the fix. There are two possible fixes. 1. In ~DeviceMediaToMojoAdapter() call Stop() in order to reset the connection error handler before it gets invoked. 2. Use base::WeakPtr. I am opting for option 2. because seeing/proving that solution 1. is effective is unreasonably complex and also requires more code. Test: services_unittests --gtest_filter="DeviceMediaToMojoAdapterTest.*" Bug: 807887, 777608 Change-Id: If42094796fbb095caccad7af9f72263b1d5f3ed6 Reviewed-on: https://chromium-review.googlesource.com/898256 Commit-Queue: Christian Fremerey <chfremer@chromium.org> Reviewed-by:Emircan Uysaler <emircan@chromium.org> Cr-Commit-Position: refs/heads/master@{#534199}
Showing
Please register or sign in to comment