RESOLVED FIXED 107146
IndexedDB: Prevent crash dereferencing null if script context has stopped
https://bugs.webkit.org/show_bug.cgi?id=107146
Summary IndexedDB: Prevent crash dereferencing null if script context has stopped
Joshua Bell
Reported 2013-01-17 11:14:49 PST
IndexedDB: Prevent crash dereferencing null if script context has stopped
Attachments
Patch (2.35 KB, patch)
2013-01-17 11:24 PST, Joshua Bell
no flags
Patch for landing (2.35 KB, patch)
2013-01-17 11:43 PST, Joshua Bell
no flags
Joshua Bell
Comment 1 2013-01-17 11:24:23 PST
Joshua Bell
Comment 2 2013-01-17 11:28:01 PST
For more context, see: https://code.google.com/p/chromium/issues/detail?id=168503 https://bugs.webkit.org/show_bug.cgi?id=107050 Since the patch in 107050 didn't prevent the issue it's (probably) not a null context coming in during IDBRequest creation. Therefore the context must be getting cleared later, either by corruption or a call to stop(). Detect the latter and avoid the deference. If this works we can merge this to earlier branches and track down the root cause.
Tony Chang
Comment 3 2013-01-17 11:36:55 PST
Comment on attachment 183227 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=183227&action=review OK > Source/WebCore/Modules/indexeddb/IDBRequest.cpp:443 > + // FIXME: This method not be called if stop() was previously called, but This method *should* not ...
Tony Chang
Comment 4 2013-01-17 11:38:15 PST
Comment on attachment 183227 [details] Patch Another tactic is to use CRASH() to assert conditions in releases. People have done this in the past to track down unknown crashers.
Joshua Bell
Comment 5 2013-01-17 11:43:44 PST
Created attachment 183232 [details] Patch for landing
Joshua Bell
Comment 6 2013-01-17 11:44:59 PST
(In reply to comment #3) > > Source/WebCore/Modules/indexeddb/IDBRequest.cpp:443 > > + // FIXME: This method not be called if stop() was previously called, but > > This method *should* not ... Fixed. (In reply to comment #4) > (From update of attachment 183227 [details]) > Another tactic is to use CRASH() to assert conditions in releases. People have done this in the past to track down unknown crashers. Good to know - may end up using that as this investigation continues.
WebKit Review Bot
Comment 7 2013-01-17 12:39:22 PST
Comment on attachment 183232 [details] Patch for landing Clearing flags on attachment: 183232 Committed r140027: <http://trac.webkit.org/changeset/140027>
WebKit Review Bot
Comment 8 2013-01-17 12:39:25 PST
All reviewed patches have been landed. Closing bug.
Joshua Bell
Comment 9 2013-01-18 11:22:02 PST
Good news - this appears to have worked. Now we just need to figure out *why*.
Note You need to log in before you can comment on or make changes to this bug.