Open Bug 1421752 Opened 2 years ago Updated 9 months ago

InvalidArrayIndex_CRASH [@ nullSVGTextFrame::GetRotationOfChar]

Categories

(Core :: SVG, defect, P3, critical)

59 Branch
defect

Tracking

()

Tracking Status
firefox59 --- affected

People

(Reporter: tsmith, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: crash, regression, testcase)

Attachments

(2 files)

Attached file testcase.html
==30329==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x000000568bd8 bp 0x7ffc16439a70 sp 0x7ffc16439900 T0)
==30329==The signal is caused by a WRITE memory access.
==30329==Hint: address points to the zero page.
    #0 0x568bd7 in MOZ_CrashPrintf /src/mfbt/Assertions.cpp:63:3
    #1 0x7feb5937058b in InvalidArrayIndex_CRASH(unsigned long, unsigned long) /src/xpcom/ds/nsTArray.cpp:26:3
    #2 0x7feb61567e3d in ElementAt /src/obj-firefox/dist/include/nsTArray.h:1048:7
    #3 0x7feb61567e3d in operator[] /src/obj-firefox/dist/include/nsTArray.h:1086
    #4 0x7feb61567e3d in SVGTextFrame::GetRotationOfChar(nsIContent*, unsigned int, float*) /src/layout/svg/SVGTextFrame.cpp:4486
    #5 0x7feb5fb064fb in mozilla::dom::SVGTextContentElement::GetRotationOfChar(unsigned int, mozilla::ErrorResult&) /src/dom/svg/SVGTextContentElement.cpp:211:19
    #6 0x7feb5d5204b9 in mozilla::dom::SVGTextContentElementBinding::getRotationOfChar(JSContext*, JS::Handle<JSObject*>, mozilla::dom::SVGTextContentElement*, JSJitMethodCallArgs const&) /src/obj-firefox/dom/bindings/SVGTextContentElementBinding.cpp:319:22
    #7 0x7feb5e628cf7 in mozilla::dom::GenericBindingMethod(JSContext*, unsigned int, JS::Value*) /src/dom/bindings/BindingUtils.cpp:3042:13
    #8 0x7feb650d17e1 in CallJSNative /src/js/src/jscntxtinlines.h:291:15
    #9 0x7feb650d17e1 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /src/js/src/vm/Interpreter.cpp:473
    #10 0x7feb650bd0ca in CallFromStack /src/js/src/vm/Interpreter.cpp:528:12
    #11 0x7feb650bd0ca in Interpret(JSContext*, js::RunState&) /src/js/src/vm/Interpreter.cpp:3098
    #12 0x7feb650a3390 in js::RunScript(JSContext*, js::RunState&) /src/js/src/vm/Interpreter.cpp:423:12
    #13 0x7feb650d1c6e in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /src/js/src/vm/Interpreter.cpp:495:15
    #14 0x7feb650d2772 in js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /src/js/src/vm/Interpreter.cpp:541:10
    #15 0x7feb65bcd29c in JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /src/js/src/jsapi.cpp:3036:12
    #16 0x7feb5df6ffde in mozilla::dom::EventHandlerNonNull::Call(JSContext*, JS::Handle<JS::Value>, mozilla::dom::Event&, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&) /src/obj-firefox/dom/bindings/EventHandlerBinding.cpp:260:37
    #17 0x7feb5ead2323 in Call<nsISupports *> /src/obj-firefox/dist/include/mozilla/dom/EventHandlerBinding.h:362:12
    #18 0x7feb5ead2323 in mozilla::JSEventHandler::HandleEvent(nsIDOMEvent*) /src/dom/events/JSEventHandler.cpp:215
    #19 0x7feb5ea982e1 in mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, nsIDOMEvent*, mozilla::dom::EventTarget*) /src/dom/events/EventListenerManager.cpp:1111:51
    #20 0x7feb5ea9a1f2 in mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, nsIDOMEvent**, mozilla::dom::EventTarget*, nsEventStatus*) /src/dom/events/EventListenerManager.cpp:1286:20
    #21 0x7feb5ea8478f in mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) /src/dom/events/EventDispatcher.cpp:462:16
    #22 0x7feb5ea880c5 in mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, nsIDOMEvent*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) /src/dom/events/EventDispatcher.cpp:826:9
    #23 0x7feb60fe7b21 in nsDocumentViewer::LoadComplete(nsresult) /src/layout/base/nsDocumentViewer.cpp:1070:7
    #24 0x7feb64357f52 in nsDocShell::EndPageLoad(nsIWebProgress*, nsIChannel*, nsresult) /src/docshell/base/nsDocShell.cpp:7878:21
    #25 0x7feb64353e7a in nsDocShell::OnStateChange(nsIWebProgress*, nsIRequest*, unsigned int, nsresult) /src/docshell/base/nsDocShell.cpp:7671:7
    #26 0x7feb6435bc7f in non-virtual thunk to nsDocShell::OnStateChange(nsIWebProgress*, nsIRequest*, unsigned int, nsresult) /src/docshell/base/nsDocShell.cpp
    #27 0x7feb5b2f07c7 in nsDocLoader::DoFireOnStateChange(nsIWebProgress*, nsIRequest*, int&, nsresult) /src/uriloader/base/nsDocLoader.cpp:1319:3
    #28 0x7feb5b2ef9d1 in nsDocLoader::doStopDocumentLoad(nsIRequest*, nsresult) /src/uriloader/base/nsDocLoader.cpp:862:14
    #29 0x7feb5b2ec664 in nsDocLoader::DocLoaderIsEmpty(bool) /src/uriloader/base/nsDocLoader.cpp:751:9
    #30 0x7feb5b2ee69c in nsDocLoader::OnStopRequest(nsIRequest*, nsISupports*, nsresult) /src/uriloader/base/nsDocLoader.cpp:633:5
    #31 0x7feb5b2ef5bc in non-virtual thunk to nsDocLoader::OnStopRequest(nsIRequest*, nsISupports*, nsresult) /src/uriloader/base/nsDocLoader.cpp
    #32 0x7feb5961cc8a in mozilla::net::nsLoadGroup::RemoveRequest(nsIRequest*, nsISupports*, nsresult) /src/netwerk/base/nsLoadGroup.cpp:629:28
    #33 0x7feb5c5c3917 in DoUnblockOnload /src/dom/base/nsDocument.cpp:9380:18
    #34 0x7feb5c5c3917 in nsDocument::UnblockOnload(bool) /src/dom/base/nsDocument.cpp:9302
    #35 0x7feb5c59b66a in nsDocument::DispatchContentLoadedEvents() /src/dom/base/nsDocument.cpp:5676:3
    #36 0x7feb5c61f464 in applyImpl<nsDocument, void (nsDocument::*)()> /src/obj-firefox/dist/include/nsThreadUtils.h:1142:12
    #37 0x7feb5c61f464 in apply<nsDocument, void (nsDocument::*)()> /src/obj-firefox/dist/include/nsThreadUtils.h:1148
    #38 0x7feb5c61f464 in mozilla::detail::RunnableMethodImpl<nsDocument*, void (nsDocument::*)(), true, (mozilla::RunnableKind)0>::Run() /src/obj-firefox/dist/include/nsThreadUtils.h:1192
    #39 0x7feb5945c45e in nsThread::ProcessNextEvent(bool, bool*) /src/xpcom/threads/nsThread.cpp:1033:14
    #40 0x7feb594781e0 in NS_ProcessNextEvent(nsIThread*, bool) /src/xpcom/threads/nsThreadUtils.cpp:508:10
    #41 0x7feb5a2e8c3a in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /src/ipc/glue/MessagePump.cpp:97:21
    #42 0x7feb5a23fed9 in RunInternal /src/ipc/chromium/src/base/message_loop.cc:326:10
    #43 0x7feb5a23fed9 in RunHandler /src/ipc/chromium/src/base/message_loop.cc:319
    #44 0x7feb5a23fed9 in MessageLoop::Run() /src/ipc/chromium/src/base/message_loop.cc:299
    #45 0x7feb606e596a in nsBaseAppShell::Run() /src/widget/nsBaseAppShell.cpp:157:27
    #46 0x7feb64be233b in nsAppStartup::Run() /src/toolkit/components/startup/nsAppStartup.cpp:288:30
    #47 0x7feb64dfab28 in XREMain::XRE_mainRun() /src/toolkit/xre/nsAppRunner.cpp:4649:22
    #48 0x7feb64dfd95e in XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /src/toolkit/xre/nsAppRunner.cpp:4811:8
    #49 0x7feb64dfedd4 in XRE_main(int, char**, mozilla::BootstrapConfig const&) /src/toolkit/xre/nsAppRunner.cpp:4903:21
    #50 0x4ee80b in do_main /src/browser/app/nsBrowserApp.cpp:231:22
    #51 0x4ee80b in main /src/browser/app/nsBrowserApp.cpp:304
    #52 0x7feb77f0b82f in __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:291
    #53 0x41e078 in _start (firefox+0x41e078)
Flags: in-testsuite?
Attached file prefs.js
Priority: -- → P3

I don't think this crashes any more.

Bugbug thinks this bug is a regression, but please revert this change in case of error.

Keywords: regression
You need to log in before you can comment on or make changes to this bug.