Bug 147025 - float-divide-by-zero in calculateStepsForSvgGradient
Summary: float-divide-by-zero in calculateStepsForSvgGradient
Status: UNCONFIRMED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: graphics stack (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-01-27 21:42 UTC by Stephan Bergmann
Modified: 2022-08-19 03:43 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stephan Bergmann 2022-01-27 21:42:43 UTC
At least in a recent master UBSan build, opening icon-themes/karasa_jaga_svg/cmd/lc_inserthyperlink.svg <https://git.libreoffice.org/core/+/7157a102b8b2dd2097ebdbb069a6f6f055f7a727%5E!> "tdf#125368 add Karasa Jaga SVG Icons" causes

> drawinglayer/source/primitive2d/svggradientprimitive2d.cxx:49:64: runtime error: division by zero
>  #0 in (anonymous namespace)::calculateStepsForSvgGradient(basegfx::BColor const&, basegfx::BColor const&, double, double) at drawinglayer/source/primitive2d/svggradientprimitive2d.cxx:49:64 (instdir/program/libdrawinglayerlo.so +0x1079d63)
>  #1 in drawinglayer::primitive2d::SvgRadialAtomPrimitive2D::create2DDecomposition(drawinglayer::primitive2d::Primitive2DContainer&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/svggradientprimitive2d.cxx:966:37 (instdir/program/libdrawinglayerlo.so +0x107b8e6)
>  #2 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:36:9 (instdir/program/libdrawinglayercorelo.so +0xb31a4)
>  #3 in drawinglayer::primitive2d::DiscreteMetricDependentPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/primitivetools2d.cxx:46:47 (instdir/program/libdrawinglayerlo.so +0x102d1ec)
>  #4 in drawinglayer::primitive2d::BasePrimitive2D::getB2DRange(drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/baseprimitive2d.cxx:73:5 (instdir/program/libdrawinglayercorelo.so +0xaac01)
>  #5 in drawinglayer::primitive2d::getB2DRangeFromPrimitive2DReference(rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> const&, drawinglayer::geometry::ViewInformation2D const&) at drawinglayer/source/primitive2d/Tools.cxx:37:24 (instdir/program/libdrawinglayercorelo.so +0x128d05)
>  #6 in drawinglayer::primitive2d::Primitive2DContainer::getB2DRange(drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/Primitive2DContainer.cxx:89:28 (instdir/program/libdrawinglayercorelo.so +0xb8287)
>  #7 in drawinglayer::processor2d::VclProcessor2D::RenderTransparencePrimitive2D(drawinglayer::primitive2d::TransparencePrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:868:60 (instdir/program/libdrawinglayerlo.so +0x1357d38)
>  #8 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:315:13 (instdir/program/libdrawinglayerlo.so +0x132131c)
>  #9 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:67:21 (instdir/program/libdrawinglayerlo.so +0x12401ec)
>  #10 in drawinglayer::processor2d::VclProcessor2D::RenderTransformPrimitive2D(drawinglayer::primitive2d::TransformPrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:920:5 (instdir/program/libdrawinglayerlo.so +0x1359f68)
>  #11 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:322:13 (instdir/program/libdrawinglayerlo.so +0x132151f)
>  #12 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:67:21 (instdir/program/libdrawinglayerlo.so +0x12401ec)
>  #13 in drawinglayer::processor2d::VclProcessor2D::RenderMaskPrimitive2DPixel(drawinglayer::primitive2d::MaskPrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:797:5 (instdir/program/libdrawinglayerlo.so +0x13553e0)
>  #14 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:295:13 (instdir/program/libdrawinglayerlo.so +0x1320d45)
>  #15 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:67:21 (instdir/program/libdrawinglayerlo.so +0x12401ec)
>  #16 in drawinglayer::processor2d::BaseProcessor2D::visit(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:55:13 (instdir/program/libdrawinglayerlo.so +0x123fcbc)
>  #17 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:41:14 (instdir/program/libdrawinglayercorelo.so +0xb34da)
>  #18 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:45:24 (instdir/program/libdrawinglayerlo.so +0x123fa08)
>  #19 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:445:13 (instdir/program/libdrawinglayerlo.so +0x1323c7c)
>  #20 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:67:21 (instdir/program/libdrawinglayerlo.so +0x12401ec)
>  #21 in drawinglayer::processor2d::VclProcessor2D::RenderTransformPrimitive2D(drawinglayer::primitive2d::TransformPrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:920:5 (instdir/program/libdrawinglayerlo.so +0x1359f68)
>  #22 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:322:13 (instdir/program/libdrawinglayerlo.so +0x132151f)
>  #23 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:67:21 (instdir/program/libdrawinglayerlo.so +0x12401ec)
>  #24 in drawinglayer::processor2d::VclProcessor2D::RenderMaskPrimitive2DPixel(drawinglayer::primitive2d::MaskPrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:781:9 (instdir/program/libdrawinglayerlo.so +0x1354b05)
>  #25 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:295:13 (instdir/program/libdrawinglayerlo.so +0x1320d45)
>  #26 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:67:21 (instdir/program/libdrawinglayerlo.so +0x12401ec)
>  #27 in drawinglayer::processor2d::VclProcessor2D::RenderTransformPrimitive2D(drawinglayer::primitive2d::TransformPrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:920:5 (instdir/program/libdrawinglayerlo.so +0x1359f68)
>  #28 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:322:13 (instdir/program/libdrawinglayerlo.so +0x132151f)
>  #29 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:67:21 (instdir/program/libdrawinglayerlo.so +0x12401ec)
>  #30 in drawinglayer::processor2d::VclProcessor2D::RenderTransformPrimitive2D(drawinglayer::primitive2d::TransformPrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:920:5 (instdir/program/libdrawinglayerlo.so +0x1359f68)
>  #31 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:322:13 (instdir/program/libdrawinglayerlo.so +0x132151f)
>  #32 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:67:21 (instdir/program/libdrawinglayerlo.so +0x12401ec)
>  #33 in drawinglayer::processor2d::BaseProcessor2D::visit(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:55:13 (instdir/program/libdrawinglayerlo.so +0x123fcbc)
>  #34 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:41:14 (instdir/program/libdrawinglayercorelo.so +0xb34da)
>  #35 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:45:24 (instdir/program/libdrawinglayerlo.so +0x123fa08)
>  #36 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:445:13 (instdir/program/libdrawinglayerlo.so +0x1323c7c)
>  #37 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:67:21 (instdir/program/libdrawinglayerlo.so +0x12401ec)
>  #38 in drawinglayer::processor2d::BaseProcessor2D::visit(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:55:13 (instdir/program/libdrawinglayerlo.so +0x123fcbc)
>  #39 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:41:14 (instdir/program/libdrawinglayercorelo.so +0xb34da)
>  #40 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:45:24 (instdir/program/libdrawinglayerlo.so +0x123fa08)
>  #41 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:445:13 (instdir/program/libdrawinglayerlo.so +0x1323c7c)
>  #42 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:67:21 (instdir/program/libdrawinglayerlo.so +0x12401ec)
>  #43 in drawinglayer::processor2d::BaseProcessor2D::visit(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:55:13 (instdir/program/libdrawinglayerlo.so +0x123fcbc)
>  #44 in sdr::contact::ViewObjectContact::getPrimitive2DSequenceHierarchy(sdr::contact::DisplayInfo&, drawinglayer::primitive2d::Primitive2DDecompositionVisitor&) const at svx/source/sdr/contact/viewobjectcontact.cxx:450:14 (instdir/program/libsvxcorelo.so +0x62515ae)
>  #45 in sdr::contact::ViewObjectContact::getPrimitive2DSequenceSubHierarchy(sdr::contact::DisplayInfo&, drawinglayer::primitive2d::Primitive2DDecompositionVisitor&) const at svx/source/sdr/contact/viewobjectcontact.cxx:465:20 (instdir/program/libsvxcorelo.so +0x62521e9)
>  #46 in sdr::contact::ViewObjectContactOfPageHierarchy::getPrimitive2DSequenceHierarchy(sdr::contact::DisplayInfo&, drawinglayer::primitive2d::Primitive2DDecompositionVisitor&) const at svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx:371:5 (instdir/program/libsvxcorelo.so +0x613bfdf)
>  #47 in sdr::contact::ViewObjectContact::getPrimitive2DSequenceSubHierarchy(sdr::contact::DisplayInfo&, drawinglayer::primitive2d::Primitive2DDecompositionVisitor&) const at svx/source/sdr/contact/viewobjectcontact.cxx:465:20 (instdir/program/libsvxcorelo.so +0x62521e9)
>  #48 in sdr::contact::ViewObjectContactOfSdrPage::getPrimitive2DSequenceHierarchy(sdr::contact::DisplayInfo&, drawinglayer::primitive2d::Primitive2DDecompositionVisitor&) const at svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx:569:5 (instdir/program/libsvxcorelo.so +0x6141351)
>  #49 in sdr::contact::ObjectContactOfPageView::DoProcessDisplay(sdr::contact::DisplayInfo&) at svx/source/sdr/contact/objectcontactofpageview.cxx:237:32 (instdir/program/libsvxcorelo.so +0x625beb2)
>  #50 in sdr::contact::ObjectContactOfPageView::ProcessDisplay(sdr::contact::DisplayInfo&) at svx/source/sdr/contact/objectcontactofpageview.cxx:116:21 (instdir/program/libsvxcorelo.so +0x6259aae)
>  #51 in SdrPageWindow::RedrawAll(sdr::contact::ViewObjectContactRedirector*) at svx/source/svdraw/sdrpagewindow.cxx:357:28 (instdir/program/libsvxcorelo.so +0x651ec42)
>  #52 in SdrPageView::CompleteRedraw(SdrPaintWindow&, vcl::Region const&, sdr::contact::ViewObjectContactRedirector*) at svx/source/svdraw/svdpagv.cxx:239:18 (instdir/program/libsvxcorelo.so +0x726eba9)
>  #53 in SdrPaintView::DoCompleteRedraw(SdrPaintWindow&, vcl::Region const&, sdr::contact::ViewObjectContactRedirector*) at svx/source/svdraw/svdpntv.cxx:609:21 (instdir/program/libsvxcorelo.so +0x72e8be0)
>  #54 in SdrPaintView::CompleteRedraw(OutputDevice*, vcl::Region const&, sdr::contact::ViewObjectContactRedirector*) at svx/source/svdraw/svdpntv.cxx:522:5 (instdir/program/libsvxcorelo.so +0x72e8692)
>  #55 in sd::View::CompleteRedraw(OutputDevice*, vcl::Region const&, sdr::contact::ViewObjectContactRedirector*) at sd/source/ui/view/sdview.cxx:473:17 (instdir/program/../program/libsdlo.so +0x6bc490f)
>  #56 in sd::DrawView::CompleteRedraw(OutputDevice*, vcl::Region const&, sdr::contact::ViewObjectContactRedirector*) at sd/source/ui/view/drawview.cxx:521:21 (instdir/program/../program/libsdlo.so +0x6746333)
>  #57 in sd::DrawViewShell::Paint(tools::Rectangle const&, sd::Window*) at sd/source/ui/view/drviews5.cxx:420:17 (instdir/program/../program/libsdlo.so +0x6937c6a)
>  #58 in sd::Window::Paint(OutputDevice&, tools::Rectangle const&) at sd/source/ui/view/sdwindow.cxx:213:22 (instdir/program/../program/libsdlo.so +0x6c87c4d)
>  #59 in PaintHelper::DoPaint(vcl::Region const*) at vcl/source/window/paint.cxx:313:20 (instdir/program/libvcllo.so +0x69d0627)
>  #60 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:617:17 (instdir/program/libvcllo.so +0x69dc778)
>  #61 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:552:30 (instdir/program/libvcllo.so +0x69d9126)
>  #62 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:623:1 (instdir/program/libvcllo.so +0x69dcb13)
>  #63 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:552:30 (instdir/program/libvcllo.so +0x69d9126)
>  #64 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:623:1 (instdir/program/libvcllo.so +0x69dcb13)
>  #65 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:552:30 (instdir/program/libvcllo.so +0x69d9126)
>  #66 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:623:1 (instdir/program/libvcllo.so +0x69dcb13)
>  #67 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:552:30 (instdir/program/libvcllo.so +0x69d9126)
>  #68 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:623:1 (instdir/program/libvcllo.so +0x69dcb13)
>  #69 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:552:30 (instdir/program/libvcllo.so +0x69d9126)
>  #70 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:623:1 (instdir/program/libvcllo.so +0x69dcb13)
>  #71 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:552:30 (instdir/program/libvcllo.so +0x69d9126)
>  #72 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:623:1 (instdir/program/libvcllo.so +0x69dcb13)
>  #73 in vcl::Window::ImplCallOverlapPaint() at vcl/source/window/paint.cxx:644:9 (instdir/program/libvcllo.so +0x69dd9d3)
>  #74 in vcl::Window::ImplHandlePaintHdl(Timer*) at vcl/source/window/paint.cxx:667:9 (instdir/program/libvcllo.so +0x69dec60)
>  #75 in vcl::Window::LinkStubImplHandlePaintHdl(void*, Timer*) at vcl/source/window/paint.cxx:648:1 (instdir/program/libvcllo.so +0x69ddb48)
>  #76 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 (instdir/program/libvcllo.so +0xa1d809d)
>  #77 in Timer::Invoke(Timer*) at vcl/source/app/timer.cxx:80:21 (instdir/program/libvcllo.so +0xa1d77b0)
>  #78 in vcl::Window::ImplHandleResizeTimerHdl(Timer*) at vcl/source/window/paint.cxx:684:52 (instdir/program/libvcllo.so +0x69e0053)
>  #79 in vcl::Window::LinkStubImplHandleResizeTimerHdl(void*, Timer*) at vcl/source/window/paint.cxx:674:1 (instdir/program/libvcllo.so +0x69df418)
>  #80 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 (instdir/program/libvcllo.so +0xa1d809d)
>  #81 in Timer::Invoke(Timer*) at vcl/source/app/timer.cxx:80:21 (instdir/program/libvcllo.so +0xa1d77b0)
>  #82 in vcl::Window::GetSizePixel() const at vcl/source/window/window.cxx:2415:49 (instdir/program/libvcllo.so +0x78302cf)
>  #83 in ImplHandlePaint(vcl::Window*, tools::Rectangle const&, bool) at vcl/source/window/winproc.cxx:1634:18 (instdir/program/libvcllo.so +0x78e394a)
>  #84 in ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) at vcl/source/window/winproc.cxx:2529:13 (instdir/program/libvcllo.so +0x78d5662)
>  #85 in SalFrame::CallCallback(SalEvent, void const*) const at vcl/inc/salframe.hxx:308:29 (instdir/program/libvclplug_gtk3lo.so +0x195c832)
>  #86 in GtkSalFrame::CallCallbackExc(SalEvent, void const*) const at vcl/unx/gtk3/gtkframe.cxx:5942:16 (instdir/program/libvclplug_gtk3lo.so +0x18d10f1)
>  #87 in GtkSalFrame::TriggerPaintEvent() at vcl/unx/gtk3/gtkframe.cxx:3667:5 (instdir/program/libvclplug_gtk3lo.so +0x18d0d0d)
>  #88 in GtkSalFrame::DrawingAreaResized(_GtkWidget*, int, int) at vcl/unx/gtk3/gtkframe.cxx:3516:9 (instdir/program/libvclplug_gtk3lo.so +0x19311af)
>  #89 in GtkSalFrame::sizeAllocated(_GtkWidget*, _cairo_rectangle_int*, void*) at vcl/unx/gtk3/gtkframe.cxx:3523:12 (instdir/program/libvclplug_gtk3lo.so +0x18f20fb)
>  #90 in g_closure_invoke at <null> (/lib64/libgobject-2.0.so.0 +0x13c7e)
>  #91  at <null> (/lib64/libgobject-2.0.so.0 +0x30105)
>  #92 in g_signal_emit_valist at <null> (/lib64/libgobject-2.0.so.0 +0x319c9)
>  #93 in g_signal_emit at <null> (/lib64/libgobject-2.0.so.0 +0x31be2)
>  #94 in gtk_widget_size_allocate_with_baseline at <null> (/lib64/libgtk-3.so.0 +0x371e89)
>  #95  at <null> (/lib64/libgtk-3.so.0 +0x18157b)
>  #96 in gtk_widget_size_allocate_with_baseline at <null> (/lib64/libgtk-3.so.0 +0x371be7)
>  #97  at <null> (/lib64/libgtk-3.so.0 +0x1c6546)
>  #98  at <null> (/lib64/libgtk-3.so.0 +0x12d736)
>  #99  at <null> (/lib64/libgtk-3.so.0 +0x1c408d)
>  #100 in gtk_widget_size_allocate_with_baseline at <null> (/lib64/libgtk-3.so.0 +0x371be7)
>  #101  at <null> (/lib64/libgtk-3.so.0 +0x3921a2)
>  #102 in g_closure_invoke at <null> (/lib64/libgobject-2.0.so.0 +0x13c7e)
>  #103  at <null> (/lib64/libgobject-2.0.so.0 +0x2fd64)
>  #104 in g_signal_emit_valist at <null> (/lib64/libgobject-2.0.so.0 +0x319c9)
>  #105 in g_signal_emit at <null> (/lib64/libgobject-2.0.so.0 +0x31be2)
>  #106 in gtk_widget_size_allocate_with_baseline at <null> (/lib64/libgtk-3.so.0 +0x371e89)
>  #107  at <null> (/lib64/libgtk-3.so.0 +0x3956fb)
>  #108 in g_signal_emit_valist at <null> (/lib64/libgobject-2.0.so.0 +0x31a99)
>  #109 in g_signal_emit at <null> (/lib64/libgobject-2.0.so.0 +0x31be2)
>  #110  at <null> (/lib64/libgtk-3.so.0 +0x121ec7)
>  #111 in g_signal_emit_valist at <null> (/lib64/libgobject-2.0.so.0 +0x31a99)
>  #112 in g_signal_emit at <null> (/lib64/libgobject-2.0.so.0 +0x31be2)
>  #113  at <null> (/lib64/libgdk-3.so.0 +0x461bb)
>  #114  at <null> (/lib64/libgdk-3.so.0 +0x3323c)
>  #115  at <null> (/lib64/libglib-2.0.so.0 +0x55980)
>  #116 in g_main_context_dispatch at <null> (/lib64/libglib-2.0.so.0 +0x5512f)
>  #117  at <null> (/lib64/libglib-2.0.so.0 +0xaa207)
>  #118 in g_main_context_iteration at <null> (/lib64/libglib-2.0.so.0 +0x52932)
>  #119 in GtkSalData::Yield(bool, bool) at vcl/unx/gtk3/gtkdata.cxx:405:31 (instdir/program/libvclplug_gtk3lo.so +0x126e897)
>  #120 in GtkInstance::DoYield(bool, bool) at vcl/unx/gtk3/gtkinst.cxx:427:29 (instdir/program/libvclplug_gtk3lo.so +0x128775d)
>  #121 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:474:48 (instdir/program/libvcllo.so +0xa12131a)
>  #122 in Application::Yield() at vcl/source/app/svapp.cxx:558:5 (instdir/program/libvcllo.so +0xa11f9a3)
>  #123 in Application::Execute() at vcl/source/app/svapp.cxx:452:13 (instdir/program/libvcllo.so +0xa11f168)
>  #124 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1605:13 (instdir/program/libsofficeapp.so +0x81ee99)
>  #125 in ImplSVMain() at vcl/source/app/svmain.cxx:202:35 (instdir/program/libvcllo.so +0xa1c2589)
>  #126 in SVMain() at vcl/source/app/svmain.cxx:234:12 (instdir/program/libvcllo.so +0xa1cae20)
>  #127 in soffice_main at desktop/source/app/sofficemain.cxx:98:12 (instdir/program/libsofficeapp.so +0xa0da7f)
>  #128 in sal_main at desktop/source/app/main.c:51:15 (instdir/program/soffice.bin +0x314a8c)
>  #129 in main at desktop/source/app/main.c:49:1 (instdir/program/soffice.bin +0x314a66)
>  #130 in __libc_start_call_main at <null> (/lib64/libc.so.6 +0x2d55f)
>  #131 in __libc_start_main@GLIBC_2.2.5 at <null> (/lib64/libc.so.6 +0x2d60b)
>  #132 in _start at <null> (instdir/program/soffice.bin +0x2532e4)

The zero fDiscreteUnit in frame 0 is drawinglayer::primitive2d::DiscreteMetricDependentPrimitive2D::getDiscreteUnit() (i.e., drawinglayer::primitive2d::DiscreteMetricDependentPrimitive2D::mfDiscreteUnit, include/drawinglayer/primitive2d/primitivetools2d.hxx) as read in frame 1.  That mfDiscreteUnit is zet to zero in the DiscreteMetricDependentPrimitive2D constructor and only ever set to anything else in drawinglayer::primitive2d::DiscreteMetricDependentPrimitive2D::get2DDecomposition (drawinglayer/source/primitive2d/primitivetools2d.cxx).
Comment 1 Xisco Faulí 2022-08-18 08:16:52 UTC
Hi Stephan,
is this issue still reproducible in a master build ?
Comment 2 Stephan Bergmann 2022-08-18 10:40:44 UTC
(In reply to Xisco Faulí from comment #1)
> is this issue still reproducible in a master build ?

yes