From e1dee0aaacd8e30e2949053ebf351d76bad14ac3 Mon Sep 17 00:00:00 2001 From: Markus Mohrhard Date: Thu, 4 Oct 2012 19:55:04 +0200 Subject: limit degree for b-spline to 15 to prevent std::bad_alloc, fdo#46100 Change-Id: Ib801c6af84b52ed093be2ba5eba902513bfa4070 --- chart2/source/view/charttypes/Splines.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/chart2/source/view/charttypes/Splines.cxx b/chart2/source/view/charttypes/Splines.cxx index 7129d4450837..8cb7fcb2d7aa 100644 --- a/chart2/source/view/charttypes/Splines.cxx +++ b/chart2/source/view/charttypes/Splines.cxx @@ -24,6 +24,8 @@ #include #include +#define MAX_BSPLINE_DEGREE 15 + //............................................................................. namespace chart { @@ -691,7 +693,9 @@ void SplineCalculater::CalculateBSplines( // ODF1.2 spec variable p OSL_ASSERT( nResolution > 1 ); OSL_ASSERT( nDegree >= 1 ); - sal_uInt32 p = nDegree; + + // limit the b-spline degree to prevent insanely large sets of points + sal_uInt32 p = std::min(nDegree, MAX_BSPLINE_DEGREE); rResult.SequenceX.realloc(0); rResult.SequenceY.realloc(0); -- cgit v1.2.3