diff options
Diffstat (limited to 'gnu/packages/patches/icecat-CVE-2014-8634-pt1.patch')
-rw-r--r-- | gnu/packages/patches/icecat-CVE-2014-8634-pt1.patch | 410 |
1 files changed, 0 insertions, 410 deletions
diff --git a/gnu/packages/patches/icecat-CVE-2014-8634-pt1.patch b/gnu/packages/patches/icecat-CVE-2014-8634-pt1.patch deleted file mode 100644 index 3d2f81e24a..0000000000 --- a/gnu/packages/patches/icecat-CVE-2014-8634-pt1.patch +++ /dev/null @@ -1,410 +0,0 @@ -From 4f447768a2ff6bf37d462e033c11e20c733129ba Mon Sep 17 00:00:00 2001 -From: Jan de Mooij <jdemooij@mozilla.com> -Date: Tue, 16 Dec 2014 22:52:51 +0100 -Subject: [PATCH] Bug 1109889 - Share more exception handling code. r=nbp, - a=abillings - ---- - js/src/jit/Ion.cpp | 11 ++++++++++- - js/src/jit/IonMacroAssembler.cpp | 8 ++++---- - js/src/jit/JitCompartment.h | 8 ++++++-- - js/src/jit/arm/MacroAssembler-arm.cpp | 11 ++--------- - js/src/jit/arm/MacroAssembler-arm.h | 6 ++++-- - js/src/jit/arm/Trampoline-arm.cpp | 4 ++-- - js/src/jit/mips/MacroAssembler-mips.cpp | 11 ++--------- - js/src/jit/mips/MacroAssembler-mips.h | 7 +++++-- - js/src/jit/mips/Trampoline-mips.cpp | 4 ++-- - js/src/jit/shared/MacroAssembler-x86-shared.h | 3 +++ - js/src/jit/x64/MacroAssembler-x64.cpp | 11 ++--------- - js/src/jit/x64/MacroAssembler-x64.h | 3 +-- - js/src/jit/x64/Trampoline-x64.cpp | 4 ++-- - js/src/jit/x86/MacroAssembler-x86.cpp | 11 ++--------- - js/src/jit/x86/MacroAssembler-x86.h | 3 +-- - js/src/jit/x86/Trampoline-x86.cpp | 4 ++-- - 16 files changed, 50 insertions(+), 59 deletions(-) - -diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp -index 9635742..a77f9b4 100644 ---- a/js/src/jit/Ion.cpp -+++ b/js/src/jit/Ion.cpp -@@ -150,6 +150,7 @@ JitRuntime::JitRuntime() - : execAlloc_(nullptr), - ionAlloc_(nullptr), - exceptionTail_(nullptr), -+ exceptionTailParallel_(nullptr), - bailoutTail_(nullptr), - enterJIT_(nullptr), - bailoutHandler_(nullptr), -@@ -198,10 +199,18 @@ JitRuntime::initialize(JSContext *cx) - return false; - - IonSpew(IonSpew_Codegen, "# Emitting exception tail stub"); -- exceptionTail_ = generateExceptionTailStub(cx); -+ -+ void *handler = JS_FUNC_TO_DATA_PTR(void *, jit::HandleException); -+ void *handlerParallel = JS_FUNC_TO_DATA_PTR(void *, jit::HandleParallelFailure); -+ -+ exceptionTail_ = generateExceptionTailStub(cx, handler); - if (!exceptionTail_) - return false; - -+ exceptionTailParallel_ = generateExceptionTailStub(cx, handlerParallel); -+ if (!exceptionTailParallel_) -+ return false; -+ - IonSpew(IonSpew_Codegen, "# Emitting bailout tail stub"); - bailoutTail_ = generateBailoutTailStub(cx); - if (!bailoutTail_) -diff --git a/js/src/jit/IonMacroAssembler.cpp b/js/src/jit/IonMacroAssembler.cpp -index 2326fe1..9f7cc8f 100644 ---- a/js/src/jit/IonMacroAssembler.cpp -+++ b/js/src/jit/IonMacroAssembler.cpp -@@ -1030,18 +1030,18 @@ MacroAssembler::handleFailure(ExecutionMode executionMode) - sps_->skipNextReenter(); - leaveSPSFrame(); - -- void *handler; -+ JitCode *excTail; - switch (executionMode) { - case SequentialExecution: -- handler = JS_FUNC_TO_DATA_PTR(void *, jit::HandleException); -+ excTail = GetIonContext()->runtime->jitRuntime()->getExceptionTail(); - break; - case ParallelExecution: -- handler = JS_FUNC_TO_DATA_PTR(void *, jit::HandleParallelFailure); -+ excTail = GetIonContext()->runtime->jitRuntime()->getExceptionTailParallel(); - break; - default: - MOZ_ASSUME_UNREACHABLE("No such execution mode"); - } -- MacroAssemblerSpecific::handleFailureWithHandler(handler); -+ jump(excTail); - - // Doesn't actually emit code, but balances the leave() - if (sps_) -diff --git a/js/src/jit/JitCompartment.h b/js/src/jit/JitCompartment.h -index 486a29d..475a685 100644 ---- a/js/src/jit/JitCompartment.h -+++ b/js/src/jit/JitCompartment.h -@@ -153,8 +153,9 @@ class JitRuntime - // need for explicit interrupt checks. - JSC::ExecutableAllocator *ionAlloc_; - -- // Shared post-exception-handler tail -+ // Shared exception-handler tail. - JitCode *exceptionTail_; -+ JitCode *exceptionTailParallel_; - - // Shared post-bailout-handler tail. - JitCode *bailoutTail_; -@@ -214,7 +215,7 @@ class JitRuntime - InlineList<PatchableBackedge> backedgeList_; - - private: -- JitCode *generateExceptionTailStub(JSContext *cx); -+ JitCode *generateExceptionTailStub(JSContext *cx, void *handler); - JitCode *generateBailoutTailStub(JSContext *cx); - JitCode *generateEnterJIT(JSContext *cx, EnterJitType type); - JitCode *generateArgumentsRectifier(JSContext *cx, ExecutionMode mode, void **returnAddrOut); -@@ -287,6 +288,9 @@ class JitRuntime - JitCode *getExceptionTail() const { - return exceptionTail_; - } -+ JitCode *getExceptionTailParallel() const { -+ return exceptionTailParallel_; -+ } - - JitCode *getBailoutTail() const { - return bailoutTail_; -diff --git a/js/src/jit/arm/MacroAssembler-arm.cpp b/js/src/jit/arm/MacroAssembler-arm.cpp -index b34483c..63b3ff2 100644 ---- a/js/src/jit/arm/MacroAssembler-arm.cpp -+++ b/js/src/jit/arm/MacroAssembler-arm.cpp -@@ -3984,25 +3984,18 @@ MacroAssemblerARMCompat::callWithABI(const Address &fun, MoveOp::Type result) - } - - void --MacroAssemblerARMCompat::handleFailureWithHandler(void *handler) -+MacroAssemblerARMCompat::handleFailureWithHandlerTail(void *handler) - { - // Reserve space for exception information. - int size = (sizeof(ResumeFromException) + 7) & ~7; - ma_sub(Imm32(size), sp); - ma_mov(sp, r0); - -- // Ask for an exception handler. -+ // Call the handler. - setupUnalignedABICall(1, r1); - passABIArg(r0); - callWithABI(handler); - -- JitCode *excTail = GetIonContext()->runtime->jitRuntime()->getExceptionTail(); -- branch(excTail); --} -- --void --MacroAssemblerARMCompat::handleFailureWithHandlerTail() --{ - Label entryFrame; - Label catch_; - Label finally; -diff --git a/js/src/jit/arm/MacroAssembler-arm.h b/js/src/jit/arm/MacroAssembler-arm.h -index 00e8a03..6ccc0be 100644 ---- a/js/src/jit/arm/MacroAssembler-arm.h -+++ b/js/src/jit/arm/MacroAssembler-arm.h -@@ -711,6 +711,9 @@ class MacroAssemblerARMCompat : public MacroAssemblerARM - void jump(Label *label) { - as_b(label); - } -+ void jump(JitCode *code) { -+ branch(code); -+ } - void jump(Register reg) { - ma_bx(reg); - } -@@ -1202,8 +1205,7 @@ class MacroAssemblerARMCompat : public MacroAssemblerARM - - void linkExitFrame(); - void linkParallelExitFrame(const Register &pt); -- void handleFailureWithHandler(void *handler); -- void handleFailureWithHandlerTail(); -+ void handleFailureWithHandlerTail(void *handler); - - ///////////////////////////////////////////////////////////////// - // Common interface. -diff --git a/js/src/jit/arm/Trampoline-arm.cpp b/js/src/jit/arm/Trampoline-arm.cpp -index e539c00..693dad8 100644 ---- a/js/src/jit/arm/Trampoline-arm.cpp -+++ b/js/src/jit/arm/Trampoline-arm.cpp -@@ -928,11 +928,11 @@ JitRuntime::generateDebugTrapHandler(JSContext *cx) - } - - JitCode * --JitRuntime::generateExceptionTailStub(JSContext *cx) -+JitRuntime::generateExceptionTailStub(JSContext *cx, void *handler) - { - MacroAssembler masm; - -- masm.handleFailureWithHandlerTail(); -+ masm.handleFailureWithHandlerTail(handler); - - Linker linker(masm); - AutoFlushICache afc("ExceptionTailStub"); -diff --git a/js/src/jit/mips/MacroAssembler-mips.cpp b/js/src/jit/mips/MacroAssembler-mips.cpp -index cee93a5..256434d 100644 ---- a/js/src/jit/mips/MacroAssembler-mips.cpp -+++ b/js/src/jit/mips/MacroAssembler-mips.cpp -@@ -3139,25 +3139,18 @@ MacroAssemblerMIPSCompat::callWithABI(const Address &fun, MoveOp::Type result) - } - - void --MacroAssemblerMIPSCompat::handleFailureWithHandler(void *handler) -+MacroAssemblerMIPSCompat::handleFailureWithHandlerTail(void *handler) - { - // Reserve space for exception information. - int size = (sizeof(ResumeFromException) + StackAlignment) & ~(StackAlignment - 1); - ma_subu(StackPointer, StackPointer, Imm32(size)); - ma_move(a0, StackPointer); // Use a0 since it is a first function argument - -- // Ask for an exception handler. -+ // Call the handler. - setupUnalignedABICall(1, a1); - passABIArg(a0); - callWithABI(handler); - -- JitCode *excTail = GetIonContext()->runtime->jitRuntime()->getExceptionTail(); -- branch(excTail); --} -- --void --MacroAssemblerMIPSCompat::handleFailureWithHandlerTail() --{ - Label entryFrame; - Label catch_; - Label finally; -diff --git a/js/src/jit/mips/MacroAssembler-mips.h b/js/src/jit/mips/MacroAssembler-mips.h -index ed1f566..899a50e 100644 ---- a/js/src/jit/mips/MacroAssembler-mips.h -+++ b/js/src/jit/mips/MacroAssembler-mips.h -@@ -481,6 +481,10 @@ class MacroAssemblerMIPSCompat : public MacroAssemblerMIPS - as_nop(); - } - -+ void jump(JitCode *code) { -+ branch(code); -+ } -+ - void neg32(Register reg) { - ma_negu(reg, reg); - } -@@ -842,8 +846,7 @@ public: - - void linkExitFrame(); - void linkParallelExitFrame(const Register &pt); -- void handleFailureWithHandler(void *handler); -- void handleFailureWithHandlerTail(); -+ void handleFailureWithHandlerTail(void *handler); - - ///////////////////////////////////////////////////////////////// - // Common interface. -diff --git a/js/src/jit/mips/Trampoline-mips.cpp b/js/src/jit/mips/Trampoline-mips.cpp -index b456845..64c2385 100644 ---- a/js/src/jit/mips/Trampoline-mips.cpp -+++ b/js/src/jit/mips/Trampoline-mips.cpp -@@ -960,11 +960,11 @@ JitRuntime::generateDebugTrapHandler(JSContext *cx) - - - JitCode * --JitRuntime::generateExceptionTailStub(JSContext *cx) -+JitRuntime::generateExceptionTailStub(JSContext *cx, void *handler) - { - MacroAssembler masm; - -- masm.handleFailureWithHandlerTail(); -+ masm.handleFailureWithHandlerTail(handler); - - Linker linker(masm); - AutoFlushICache afc("ExceptionTailStub"); -diff --git a/js/src/jit/shared/MacroAssembler-x86-shared.h b/js/src/jit/shared/MacroAssembler-x86-shared.h -index 01d1a4b..779cf83 100644 ---- a/js/src/jit/shared/MacroAssembler-x86-shared.h -+++ b/js/src/jit/shared/MacroAssembler-x86-shared.h -@@ -287,6 +287,9 @@ class MacroAssemblerX86Shared : public Assembler - void jump(Label *label) { - jmp(label); - } -+ void jump(JitCode *code) { -+ jmp(code); -+ } - void jump(RepatchLabel *label) { - jmp(label); - } -diff --git a/js/src/jit/x64/MacroAssembler-x64.cpp b/js/src/jit/x64/MacroAssembler-x64.cpp -index 9a9f995..0db799c 100644 ---- a/js/src/jit/x64/MacroAssembler-x64.cpp -+++ b/js/src/jit/x64/MacroAssembler-x64.cpp -@@ -287,24 +287,17 @@ MacroAssemblerX64::callWithABI(Address fun, MoveOp::Type result) - } - - void --MacroAssemblerX64::handleFailureWithHandler(void *handler) -+MacroAssemblerX64::handleFailureWithHandlerTail(void *handler) - { - // Reserve space for exception information. - subq(Imm32(sizeof(ResumeFromException)), rsp); - movq(rsp, rax); - -- // Ask for an exception handler. -+ // Call the handler. - setupUnalignedABICall(1, rcx); - passABIArg(rax); - callWithABI(handler); - -- JitCode *excTail = GetIonContext()->runtime->jitRuntime()->getExceptionTail(); -- jmp(excTail); --} -- --void --MacroAssemblerX64::handleFailureWithHandlerTail() --{ - Label entryFrame; - Label catch_; - Label finally; -diff --git a/js/src/jit/x64/MacroAssembler-x64.h b/js/src/jit/x64/MacroAssembler-x64.h -index 2c11e9a..5010549 100644 ---- a/js/src/jit/x64/MacroAssembler-x64.h -+++ b/js/src/jit/x64/MacroAssembler-x64.h -@@ -1288,8 +1288,7 @@ class MacroAssemblerX64 : public MacroAssemblerX86Shared - void callWithABI(AsmJSImmPtr imm, MoveOp::Type result = MoveOp::GENERAL); - void callWithABI(Address fun, MoveOp::Type result = MoveOp::GENERAL); - -- void handleFailureWithHandler(void *handler); -- void handleFailureWithHandlerTail(); -+ void handleFailureWithHandlerTail(void *handler); - - void makeFrameDescriptor(Register frameSizeReg, FrameType type) { - shlq(Imm32(FRAMESIZE_SHIFT), frameSizeReg); -diff --git a/js/src/jit/x64/Trampoline-x64.cpp b/js/src/jit/x64/Trampoline-x64.cpp -index 72f4592..3b83850 100644 ---- a/js/src/jit/x64/Trampoline-x64.cpp -+++ b/js/src/jit/x64/Trampoline-x64.cpp -@@ -785,11 +785,11 @@ JitRuntime::generateDebugTrapHandler(JSContext *cx) - } - - JitCode * --JitRuntime::generateExceptionTailStub(JSContext *cx) -+JitRuntime::generateExceptionTailStub(JSContext *cx, void *handler) - { - MacroAssembler masm; - -- masm.handleFailureWithHandlerTail(); -+ masm.handleFailureWithHandlerTail(handler); - - Linker linker(masm); - JitCode *code = linker.newCode<NoGC>(cx, JSC::OTHER_CODE); -diff --git a/js/src/jit/x86/MacroAssembler-x86.cpp b/js/src/jit/x86/MacroAssembler-x86.cpp -index d36f4d3..57a0f85 100644 ---- a/js/src/jit/x86/MacroAssembler-x86.cpp -+++ b/js/src/jit/x86/MacroAssembler-x86.cpp -@@ -281,24 +281,17 @@ MacroAssemblerX86::callWithABI(const Address &fun, MoveOp::Type result) - } - - void --MacroAssemblerX86::handleFailureWithHandler(void *handler) -+MacroAssemblerX86::handleFailureWithHandlerTail(void *handler) - { - // Reserve space for exception information. - subl(Imm32(sizeof(ResumeFromException)), esp); - movl(esp, eax); - -- // Ask for an exception handler. -+ // Call the handler. - setupUnalignedABICall(1, ecx); - passABIArg(eax); - callWithABI(handler); - -- JitCode *excTail = GetIonContext()->runtime->jitRuntime()->getExceptionTail(); -- jmp(excTail); --} -- --void --MacroAssemblerX86::handleFailureWithHandlerTail() --{ - Label entryFrame; - Label catch_; - Label finally; -diff --git a/js/src/jit/x86/MacroAssembler-x86.h b/js/src/jit/x86/MacroAssembler-x86.h -index 17de7a7..7e578c8 100644 ---- a/js/src/jit/x86/MacroAssembler-x86.h -+++ b/js/src/jit/x86/MacroAssembler-x86.h -@@ -1086,8 +1086,7 @@ class MacroAssemblerX86 : public MacroAssemblerX86Shared - void callWithABI(const Address &fun, MoveOp::Type result = MoveOp::GENERAL); - - // Used from within an Exit frame to handle a pending exception. -- void handleFailureWithHandler(void *handler); -- void handleFailureWithHandlerTail(); -+ void handleFailureWithHandlerTail(void *handler); - - void makeFrameDescriptor(Register frameSizeReg, FrameType type) { - shll(Imm32(FRAMESIZE_SHIFT), frameSizeReg); -diff --git a/js/src/jit/x86/Trampoline-x86.cpp b/js/src/jit/x86/Trampoline-x86.cpp -index 0a2f0de..9fd2c00 100644 ---- a/js/src/jit/x86/Trampoline-x86.cpp -+++ b/js/src/jit/x86/Trampoline-x86.cpp -@@ -827,11 +827,11 @@ JitRuntime::generateDebugTrapHandler(JSContext *cx) - } - - JitCode * --JitRuntime::generateExceptionTailStub(JSContext *cx) -+JitRuntime::generateExceptionTailStub(JSContext *cx, void *handler) - { - MacroAssembler masm; - -- masm.handleFailureWithHandlerTail(); -+ masm.handleFailureWithHandlerTail(handler); - - Linker linker(masm); - JitCode *code = linker.newCode<NoGC>(cx, JSC::OTHER_CODE); --- -2.1.2 - |