tdf#168843: Sanitize font size read from PPT
Add validation checks to SvxFontHeightItem, which is used when reading font size value from a PPT. In LO minimum accepted value for font size is 2pt. Change-Id: Ia027800bc52b797f6f0bf5b28e74ba38ba558d5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192139 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit f4c3c126d9f43f0e8b066d1eda8669cbec6495fd) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193076 Reviewed-by: Michael Stahl <michael.stahl@collabora.com> Tested-by: Jenkins
This commit is contained in:
@@ -5591,7 +5591,9 @@ void PPTPortionObj::ApplyTo( SfxItemSet& rSet, SdrPowerPointImport& rManager, T
|
||||
}
|
||||
if ( GetAttrib( PPT_CharAttr_FontHeight, nVal, nDestinationInstance ) ) // Font size in Point
|
||||
{
|
||||
sal_uInt32 nHeight = rManager.ScalePoint( nVal );
|
||||
constexpr sal_uInt32 MIN_FONT_HEIGHT_PT = 2;
|
||||
sal_uInt32 nHeight = rManager.ScalePoint(std::max(nVal, MIN_FONT_HEIGHT_PT));
|
||||
|
||||
rSet.Put( SvxFontHeightItem( nHeight, 100, EE_CHAR_FONTHEIGHT ) );
|
||||
rSet.Put( SvxFontHeightItem( nHeight, 100, EE_CHAR_FONTHEIGHT_CJK ) );
|
||||
rSet.Put( SvxFontHeightItem( nHeight, 100, EE_CHAR_FONTHEIGHT_CTL ) );
|
||||
|
||||
@@ -2681,6 +2681,8 @@ void DrawingML::WriteRunProperties( const Reference< XPropertySet >& rRun, bool
|
||||
}
|
||||
}
|
||||
|
||||
assert(nSize >= 200 && "Minimum accepted value for fontsize(ST_TextFontSize) is 200");
|
||||
|
||||
mpFS->startElementNS( XML_a, nElement,
|
||||
XML_lang, sax_fastparser::UseIf(usLanguage, !usLanguage.isEmpty()),
|
||||
XML_sz, OString::number(nSize),
|
||||
|
||||
Reference in New Issue
Block a user