Closed
Bug 973791
Opened 12 years ago
Closed 12 years ago
Assertion failure: obj->getSlot(slot).isUndefined()
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: cbook, Unassigned)
References
()
Details
(Keywords: assertion)
Attachments
(1 file)
|
111.63 KB,
text/plain
|
Details |
found via bughunter on
Steps to reproduce:
-> Load http://www.southwalesargus.co.uk/li/crime.in.CF81%209FU/ in a windows 7 debug Trunk Build
-> Watch the page to load / after a few seconds
Assertion failure: obj->getSlot(slot).isUndefined()
seems hit all debug build on all branches and platforms
will see that i get a testcase
Comment 1•12 years ago
|
||
I can repro this on OS X. There's an object stored in that slot instead of undefined.
Comment 2•12 years ago
|
||
The constructor with the TypeNewScript is MarkerClusterer: http://www.southwalesargus.co.uk/resources/static/standard/texts/js/markerclusterer.js, line 52.
We're calling this.setMap(e) there and this somehow marks the object's properties as unknown. Then we look for this script on the stack and call JSObject::rollbackProperties to delete this property:
((JSShape *) 0x12dfee268) enumerate JSString* (0x12b3baac0) = jschar * (0x12b3baad0) = "gm_accessors_"
: slot 12 = <Object at 0x12dfecac0>
We expect it to have its initial undefined value because it's not yet initialized, but in this case it is.
Comment 4•12 years ago
|
||
I think the problem is that we're trying to rollback the gm_accessors_ property, but this property is not added to the object in the constructor but in some other script under the this.setMap(e) call, so we don't want to delete it.
Comment 5•12 years ago
|
||
Ah, we're actually trying to rollback the prevZoom_ SETPROP:
function MarkerClusterer(e, a, d) {
...
this.zoomOnClick_ = b.zoomOnClick || true;
this.setMap(e);
this.prevZoom_ = this.map_.getZoom();
....
}
But the setMap(e) call ends up adding new properties, confusing the rollback code.
Updated•12 years ago
|
Keywords: testcase-wanted
Comment 6•12 years ago
|
||
Is that a potential security problem? If so how bad?
Flags: needinfo?(jdemooij)
Comment 7•12 years ago
|
||
(In reply to Daniel Veditz [:dveditz] from comment #6)
> Is that a potential security problem? If so how bad?
I'm not sure. Brian, what do you think? Can you please take a look at this?
Flags: needinfo?(jdemooij)
Comment 8•12 years ago
|
||
I can't reproduce this. Can anyone still reproduce the bug on the current version of the website / trunk?
Generally this sort of thing shouldn't be a security risk, since the definite properties are tied directly to the properties added on the object at its creation. If we think a property is definite but it's not, there could be a null deref when the property is accessed before it is assigned to yet.
Flags: needinfo?(bhackett1024)
Comment 9•12 years ago
|
||
I checked and this assertion was only seen in automation for this one url on 2014-02-17. I resubmitted it and could not reproduce. It was originally seen for Aurora 29/Nightly 30 Linux/OSX/Windows. This appears to have been due to transitory content or a regression which was quickly fixed. Unfortunately we do not have a regression range or test case.
Updated•12 years ago
|
Group: core-security
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → WORKSFORME
Updated•10 years ago
|
Keywords: testcase-wanted
You need to log in
before you can comment on or make changes to this bug.
Description
•