Bug 676934 - Limit number of stack frame objects created by XPCJSStackFrame::CreateStack (r=mrbkap)

This commit is contained in:
Luke Wagner 2011-08-22 16:35:17 -07:00
parent 85d92f9eda
commit 2215b35a8b

View File

@ -133,6 +133,9 @@ nsresult
XPCJSStackFrame::CreateStack(JSContext* cx, JSStackFrame* fp,
XPCJSStackFrame** stack)
{
static const unsigned MAX_FRAMES = 3000;
unsigned numFrames = 0;
nsRefPtr<XPCJSStackFrame> first = new XPCJSStackFrame();
nsRefPtr<XPCJSStackFrame> self = first;
while(fp && self)
@ -187,7 +190,11 @@ XPCJSStackFrame::CreateStack(JSContext* cx, JSStackFrame* fp,
}
}
if(JS_FrameIterator(cx, &fp))
if (++numFrames > MAX_FRAMES)
{
fp = NULL;
}
else if(JS_FrameIterator(cx, &fp))
{
XPCJSStackFrame* frame = new XPCJSStackFrame();
self->mCaller = frame;