Page MenuHomePhabricator

Bug 1626728 - Normalize shutdown. r=perry
ClosedPublic

Authored by asuth on Apr 2 2020, 11:40 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sep 24 2024, 11:48 PM
Unknown Object (File)
Aug 6 2024, 6:58 PM
Unknown Object (File)
Apr 29 2023, 4:10 PM
Unknown Object (File)
Apr 29 2023, 4:06 PM
Unknown Object (File)
Apr 29 2023, 4:03 PM
Unknown Object (File)
Apr 29 2023, 4:00 PM
Unknown Object (File)
Apr 29 2023, 3:57 PM
Unknown Object (File)
Apr 29 2023, 3:49 PM

Diff Detail

Repository
rMOZILLACENTRAL mozilla-central
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

phab-bot changed the visibility from "Custom Policy" to "Custom Policy".
phab-bot changed the edit policy from "Custom Policy" to "Custom Policy".
phab-bot added a project: Restricted Project.
phab-bot added subscribers: rsalonso, jstutte, sarentz and 14 others.

My understanding of what goes wrong is that

  • StreamList has a raw pointer to a CacheStreamControlParent (mStreamControl)
  • StreamList calling mStreamControl->CloseAll(); can indirectly re-enter a StreamList method for the same calling instance and delete its mStreamControl, which means it's deleting itself
  • Before CloseAll returns and after the mStreamControl is deleted, it (mStreamControl) would call one of its own methods, which is a UAF

Removing StreamList's member pointer prevents the mStreamControl from indirectly deleting itself. Shutdown is just additional cleanup to delete (what used to be) mStreamControl

This revision is now accepted and ready to land.Apr 3 2020, 1:44 AM
phab-bot changed the edit policy from "Custom Policy" to "Custom Policy".
phab-bot added a project: Restricted Project.
This revision is now accepted and ready to land.Apr 3 2020, 5:35 AM
phab-bot changed the visibility from "Custom Policy" to "Public (No Login Required)".Jun 5 2020, 7:38 AM
phab-bot changed the edit policy from "Custom Policy" to "Restricted Project (Project)".
phab-bot removed projects: Restricted Project, Restricted Project, secure-revision.