https://bugs.documentfoundation.org/show_bug.cgi?id=125924

            Bug ID: 125924
           Summary: Exporting xls/rhbz499466-2.xls to PDF triggers
                    undefined conversion from NaN to int
           Product: LibreOffice
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Chart
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]

(With <https://gerrit.libreoffice.org/#/c/74055/> "Avoid
-fsanitize=float-divide-by-zero" out of the way:)  At least on recent master,
`--convert-to pdf xls/rhbz499466-2.xls` with xls/rhbz499466-2.xls as obtained
by bin/get-bugzilla-attachments-by-mimetype (i.e., the attachment at
<https://bugzilla.redhat.com/show_bug.cgi?id=499466#c1>):

> chart2/source/view/charttypes/VSeriesPlotter.cxx:1342:33: runtime error: nan 
> is outside the range of representable values of type 'int'
>  #0 in chart::VSeriesPlotter::createRegressionCurvesShapes(chart::VDataSeries 
> const&, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> 
> const&, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> 
> const&, bool) at chart2/source/view/charttypes/VSeriesPlotter.cxx:1342:33
>  #1 in chart::AreaChart::impl_createSeriesShapes() at 
> chart2/source/view/charttypes/AreaChart.cxx:539:17 
> (instdir/program/../program/libchartcorelo.so +0x2428578)
>  #2 in chart::AreaChart::createShapes() at 
> chart2/source/view/charttypes/AreaChart.cxx:965:5
>  #3 in 
> chart::ChartView::impl_createDiagramAndContent(chart::CreateShapeParam2D 
> const&, com::sun::star::awt::Size const&) at 
> chart2/source/view/main/ChartView.cxx:1608:25
>  #4 in chart::ChartView::createShapes2D(com::sun::star::awt::Size const&) at 
> chart2/source/view/main/ChartView.cxx:3037:41
>  #5 in chart::ChartView::createShapes() at 
> chart2/source/view/main/ChartView.cxx:2506:5
[...]

The problem is that in

>         if( !bAverageLine )
>         {
>             rVDataSeries.getMinMaxXValue(fMinX, fMaxX);
>             fMaxX += aExtrapolateForward;
>             fMinX -= aExtrapolateBackward;
> 
>             fPointScale = (fMaxX - fMinX) / (fChartMaxX - fChartMinX);
>             fPointScale = std::min(fPointScale, 1000.0);
>         }

(VSeriesPlotter::createRegressionCurvesShapes,
chart2/source/view/charttypes/VSeriesPlotter.cxx) the call to
VDataSeries::getMinMaxXValue sets fMinX and fMaxX to NaN, so fPointScale is set
to NaN, and the later

>         sal_Int32 nPointCount = 100 * fPointScale;

causes undefined behavior.  That code got updated, if not introduced with
<https://gerrit.libreoffice.org/plugins/gitiles/core/+/9408a1d008487cbeafd2dc4705eda2fae9547aab%5E!>
"Draw MeanValue in chart bounds, smarter define no. of curve points."

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to