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