oox/source/export/drawingml.cxx |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit 9c14c9d031b87ef1f6a5aee05e994a0d9f4388f3
Author:     Karthik Godha <[email protected]>
AuthorDate: Wed Nov 12 18:21:24 2025 +0530
Commit:     Michael Stahl <[email protected]>
CommitDate: Mon Dec 15 15:50:48 2025 +0100

    tdf#169401: PPT->PPTX exporting too many tabstops
    
    When exporting as PPTX we are exporting too many tabstops. According
    to CT_TextTabStopList, <tabLst> can't have more than 32 tabstops.
    
    Change-Id: Ia96afc566a8e94b7a938cd645d05f4318cc2f970
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193860
    Reviewed-by: Michael Stahl <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    (cherry picked from commit 07f6354e66772a4ddbcdff06e3a6c842c687b9dc)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194086
    Tested-by: Jenkins
    (cherry picked from commit 31f7e5adee4dc599987d169493bd260f84554203)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195638
    Tested-by: Michael Stahl <[email protected]>

diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 888b18cb5627..f93440647529 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -3373,8 +3373,10 @@ void DrawingML::WriteParagraphTabStops(const 
Reference<XPropertySet>& rXPropSet)
     if (aTabStops.getLength() > 0)
         mpFS->startElementNS(XML_a, XML_tabLst);
 
-    for (const css::style::TabStop& rTabStop : aTabStops)
+    const sal_uInt8 MAX_TAB_STOPS = 32;
+    for (sal_uInt8 i = 0; i < aTabStops.getLength() && i < MAX_TAB_STOPS; i++)
     {
+        const css::style::TabStop& rTabStop = aTabStops[i];
         OString sPosition = 
OString::number(GetPointFromCoordinate(rTabStop.Position));
         OString sAlignment;
         switch (rTabStop.Alignment)

Reply via email to