oox/source/export/drawingml.cxx |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

New commits:
commit d38d667025a070fadca4ff2f82e55f5dbb0ca481
Author:     Karthik Godha <[email protected]>
AuthorDate: Tue Nov 18 14:16:08 2025 +0530
Commit:     Michael Stahl <[email protected]>
CommitDate: Mon Dec 15 15:52:54 2025 +0100

    tdf#169487: PPT->PPTX Fix export of a:ext
    
    In PPTX export `cx` and `cy` in a:ext can't be greater than
    2147483647
    
    Change-Id: I23ce1c79cda01c7ecd775eecb1d453f3e707bf9c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194150
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit cc2de7418d6fce04e52e6bb70a3240e969946c5c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194230
    Tested-by: Jenkins
    (cherry picked from commit 9dea9ed0a1d12474b120471f709d20035a8266d5)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195640
    Tested-by: Michael Stahl <[email protected]>

diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index f93440647529..0627ac200b04 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -2301,12 +2301,15 @@ void DrawingML::WriteTransformation(const Reference< 
XShape >& xShape, const too
     sal_Int32 nChildLeft = nLeft;
     sal_Int32 nChildTop = nTop;
 
+    const sal_Int64 MAX_SIZE = std::numeric_limits<sal_Int32>::max();
+    sal_Int32 nCx = 
std::min(oox::drawingml::convertHmmToEmu(rRect.GetWidth()), MAX_SIZE);
+    sal_Int32 nCy = 
std::min(oox::drawingml::convertHmmToEmu(rRect.GetHeight()), MAX_SIZE);
+
     mpFS->singleElementNS(XML_a, XML_off,
         XML_x, OString::number(oox::drawingml::convertHmmToEmu(nLeft)),
         XML_y, OString::number(oox::drawingml::convertHmmToEmu(nTop)));
-    mpFS->singleElementNS(XML_a, XML_ext,
-        XML_cx, 
OString::number(oox::drawingml::convertHmmToEmu(rRect.GetWidth())),
-        XML_cy, 
OString::number(oox::drawingml::convertHmmToEmu(rRect.GetHeight())));
+    mpFS->singleElementNS(XML_a, XML_ext, XML_cx, OString::number(nCx), XML_cy,
+                          OString::number(nCy));
 
     if (bIsGroupShape && (GetDocumentType() != DOCUMENT_DOCX || 
IsTopGroupObj(xShape)))
     {

Reply via email to