[tor-bugs] #16771 [Tor Browser]: TBB crashes on Google Maps when creating markers/clicking
Tor Bug Tracker & Wiki
blackhole at torproject.org
Thu Aug 13 01:11:29 UTC 2015
#16771: TBB crashes on Google Maps when creating markers/clicking
-------------------------+-------------------------------------------------
Reporter: tom | Owner: arthuredelstein
Type: defect | Status: needs_information
Priority: major | Milestone:
Component: Tor | Version:
Browser | Keywords: tbb-crash, tbb-5.0-regression,
Resolution: | TorBrowserTeam201508R
Actual Points: | Parent ID:
Points: |
-------------------------+-------------------------------------------------
Comment (by arthuredelstein):
Replying to [comment:16 mikeperry]:
> It seems that this null check will avoid the crash, but we'll still leak
the blob URI in this case. This lookup and subsequent remove should be
succeeding, since the isolation key matches the original host and the blob
uri domain, right?
>
> What I don't understand from my core file is why GetDataInfo() was
returning null here. It appears to have two entries in the gDataTable
hashtable still, which I assume are the two blob URIs in mHostObjectURIs
in the document.
>
> I wonder if this also means that blob URIs might not be accessible in
some cases where they should be, even if the isolation matches? This
GetDataInfo() lookup is also used during accesses, and if it is returning
null when it shouldn't, then those objects won't be visible at all, right?
I tried reverting the blob isolation code, and then I added a patch that
calls GetDataInfo() inside RemoveDataEntry(), like this:
{{{
DataInfo* info = GetDataInfo(aUri);
MOZ_RELEASE_ASSERT(info);
}}}
What I found is that the assert still fails when I run tom's Google Maps
test. So I think `RemoveDataEntry` is being called multiple times on the
same blob URL, for some reason, even without our blob isolation patch.
Perhaps `window.URL.revokeObjectURI(blobURL)` is called first (which calls
`RemoveDataEntry`), and now we are seeing the results of the `nsDocument`
destructor calling `RemoveDataEntry` again.
Here's the full test branch (not for merging):
https://github.com/arthuredelstein/tor-browser/commits/test_16771
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/16771#comment:18>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list