svx/source/customshapes/EnhancedCustomShapeFontWork.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
New commits: commit b56479e88edeabd6c6fe51cc0095a23543229856 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Nov 14 21:07:43 2017 +0000 ofz#4211 Integer-overflow Change-Id: I4e0f2c16d47639362d28d126a399b52d5180f16a Reviewed-on: https://gerrit.libreoffice.org/44741 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx index 68f796178d8a..3b0238e8705d 100644 --- a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx +++ b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx @@ -413,7 +413,7 @@ void GetTextAreaOutline( const FWData& rFWData, const SdrObject* pCustomShape, F } } -void GetFontWorkOutline( FWData& rFWData, const SdrObject* pCustomShape ) +bool GetFontWorkOutline(FWData& rFWData, const SdrObject* pCustomShape) { SdrTextHorzAdjust eHorzAdjust( static_cast<const SdrTextHorzAdjustItem&>(pCustomShape->GetMergedItem( SDRATTR_TEXT_HORZADJUST )).GetValue() ); drawing::TextFitToSizeType const eFTS( static_cast<const SdrTextFitToSizeTypeItem&>(pCustomShape->GetMergedItem( SDRATTR_TEXT_FITTOSIZE )).GetValue() ); @@ -424,6 +424,9 @@ void GetFontWorkOutline( FWData& rFWData, const SdrObject* pCustomShape ) rFWData.nSingleLineHeight = (sal_Int32)( ( (double)pCustomShape->GetLogicRect().GetHeight() / rFWData.nMaxParagraphsPerTextArea ) * rFWData.fHorizontalTextScaling ); + if (rFWData.nSingleLineHeight == SAL_MIN_INT32) + return false; + bool bSameLetterHeights = false; const SdrCustomShapeGeometryItem& rGeometryItem = static_cast<const SdrCustomShapeGeometryItem&>(pCustomShape->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )); const css::uno::Any* pAny = rGeometryItem.GetPropertyValueByName( "TextPath", "SameLetterHeights" ); @@ -507,6 +510,8 @@ void GetFontWorkOutline( FWData& rFWData, const SdrObject* pCustomShape ) } ++aTextAreaIter; } + + return true; } basegfx::B2DPolyPolygon GetOutlinesFromShape2d( const SdrObject* pShape2d ) @@ -867,8 +872,8 @@ SdrObject* EnhancedCustomShapeFontWork::CreateFontWork( const SdrObject* pShape2 CalculateHorizontalScalingFactor( pCustomShape, aFWData, aOutlines2d ); /* retrieving the Outlines for the each Paragraph. */ - - GetFontWorkOutline( aFWData, pCustomShape ); + if (!GetFontWorkOutline(aFWData, pCustomShape)) + return nullptr; FitTextOutlinesToShapeOutlines( aOutlines2d, aFWData );
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits