Changeset 232983 in webkit
- Timestamp:
- Jun 19, 2018 2:27:05 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JSTests/ChangeLog
r232971 r232983 1 2018-06-19 Tadeu Zagallo <tzagallo@apple.com> 2 3 ShadowChicken crashes with stack overflow in the LLInt 4 https://bugs.webkit.org/show_bug.cgi?id=186540 5 <rdar://problem/39682133> 6 7 Reviewed by Saam Barati. 8 9 Add test that stack overflows and crashes on ShadowChicken when JIT is 10 disabled and forceDebuggerBytecodeGeneration is enabled. 11 12 * stress/llint-stack-overflow-debugging-opcodes.js: Added. 13 (foo): 14 (catch): 15 1 16 2018-06-19 Leo Balter <leonardo.balter@gmail.com> 2 17 -
trunk/Source/JavaScriptCore/ChangeLog
r232977 r232983 1 2018-06-19 Tadeu Zagallo <tzagallo@apple.com> 2 3 ShadowChicken crashes with stack overflow in the LLInt 4 https://bugs.webkit.org/show_bug.cgi?id=186540 5 <rdar://problem/39682133> 6 7 Reviewed by Saam Barati. 8 9 Stack overflows in the LLInt were crashing in ShadowChicken when compiling 10 with debug opcodes because it was accessing the scope of the incomplete top 11 frame, which hadn't been set yet. Check that we have moved past the first 12 opcode (enter) and that the scope is not undefined (enter will 13 initialize it to undefined). 14 15 * interpreter/ShadowChicken.cpp: 16 (JSC::ShadowChicken::update): 17 1 18 2018-06-19 Keith Miller <keith_miller@apple.com> 2 19 -
trunk/Source/JavaScriptCore/interpreter/ShadowChicken.cpp
r229410 r232983 301 301 JSScope* scope = nullptr; 302 302 CodeBlock* codeBlock = callFrame->codeBlock(); 303 if (codeBlock && codeBlock->wasCompiledWithDebuggingOpcodes() && codeBlock->scopeRegister().isValid()) { 304 scope = callFrame->scope(codeBlock->scopeRegister().offset()); 303 JSValue scopeValue = callFrame->bytecodeOffset() && codeBlock && codeBlock->scopeRegister().isValid() 304 ? callFrame->registers()[codeBlock->scopeRegister().offset()].jsValue() 305 : jsUndefined(); 306 if (!scopeValue.isUndefined() && codeBlock->wasCompiledWithDebuggingOpcodes()) { 307 scope = jsCast<JSScope*>(scopeValue.asCell()); 305 308 RELEASE_ASSERT(scope->inherits<JSScope>(vm)); 306 309 } else if (foundFrame) {
Note: See TracChangeset
for help on using the changeset viewer.