cui/source/tabpages/transfrm.cxx                             |   60 
 desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx |   16 
 download.lst                                                 |   12 
 formula/inc/core_resource.hrc                                |    2 
 i18npool/source/localedata/data/bg_BG.xml                    |    8 
 include/unotools/charclass.hxx                               |    2 
 linguistic/source/misc.cxx                                   |   19 
 officecfg/registry/data/org/openoffice/Office/Calc.xcu       |   11 
 package/inc/ByteGrabber.hxx                                  |    1 
 package/source/xstor/switchpersistencestream.cxx             |   10 
 package/source/zipapi/ByteGrabber.cxx                        |  110 
 readlicense_oo/license/CREDITS.fodt                          | 9556 +++++------
 sc/qa/unit/data/fods/lookup_source.fods                      |  656 
 sc/qa/unit/data/fods/lookup_target.fods                      | 1488 +
 sc/qa/unit/subsequent_filters_test5.cxx                      |   24 
 sc/source/core/tool/interpr1.cxx                             |   14 
 sc/source/core/tool/interpr2.cxx                             |    3 
 sc/source/filter/xml/XMLExportDatabaseRanges.cxx             |    2 
 sc/source/ui/condformat/condformatmgr.cxx                    |    2 
 sd/source/ui/view/drviews4.cxx                               |    4 
 sfx2/source/devtools/ObjectInspectorTreeHandler.cxx          |    3 
 solenv/bin/modules/installer/windows/msiglobal.pm            |   14 
 solenv/gbuild/extensions/pre_MergedLibsList.mk               |    1 
 svx/source/sidebar/area/AreaPropertyPanelBase.cxx            |    2 
 sw/qa/extras/rtfimport/data/tdf167710.rtf                    |    6 
 sw/qa/extras/rtfimport/rtfimport.cxx                         |    7 
 sw/source/core/edit/edsect.cxx                               |    6 
 sw/source/core/layout/frmtool.cxx                            |    7 
 sw/source/core/undo/unattr.cxx                               |    2 
 sw/source/ui/fldui/DateFormFieldDialog.cxx                   |    4 
 sw/source/ui/fldui/fldvar.cxx                                |    6 
 sw/source/ui/fldui/fldvar.hxx                                |    1 
 sw/source/uibase/dbui/dbmgr.cxx                              |    4 
 sw/source/writerfilter/rtftok/rtfdocumentimpl.cxx            |    3 
 ucb/source/cacher/cachedcontentresultset.cxx                 |    3 
 unotools/source/i18n/charclass.cxx                           |   27 
 vcl/unx/gtk3/gtkinst.cxx                                     |    2 
 vcl/win/window/salframe.cxx                                  |    6 
 wizards/source/euro/Init.xba                                 |   16 
 wizards/source/resources/resources_en_US.properties          |    1 
 40 files changed, 7475 insertions(+), 4646 deletions(-)

New commits:
commit 20577eb3ed3e646b6d34aaa8dccfa5e4b6a751b9
Author:     Rene Engelhard <r...@rene-engelhard.de>
AuthorDate: Sat Aug 9 19:05:15 2025 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:13 2025 +0200

    add EUR for Bulgaria/Lew
    
    Bulgaria will join Eurozone 2026-01-01 at which time around the default
    needs to be switched
    
    see 
https://www.ecb.europa.eu/press/pr/date/2025/html/ecb.pr250708~b9676a9fa8.de.html
 for the conversion rate
    
    This is the < 26.2 version including the euro wizard (cf.
    b1a2f727ca99ecd3402d4b051b99cbfd24266e59)
    
    Change-Id: I840ddda4308549703c53f998812848888dd830f6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189279
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Tested-by: Jenkins
    (cherry picked from commit d57d3e9812159ff6e8df788049c8a903e1517b7b)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189516
    Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com>

diff --git a/i18npool/source/localedata/data/bg_BG.xml 
b/i18npool/source/localedata/data/bg_BG.xml
index 55c63049089f..ae295a38c7b9 100644
--- a/i18npool/source/localedata/data/bg_BG.xml
+++ b/i18npool/source/localedata/data/bg_BG.xml
@@ -366,6 +366,14 @@
       <CurrencyName>BGL</CurrencyName>
       <DecimalPlaces>2</DecimalPlaces>
     </Currency>
+    <!-- TODO: switch defaults before 2026-01-01 -->
+    <Currency default="false" usedInCompatibleFormatCodes="false">
+      <CurrencyID>EUR</CurrencyID>
+      <CurrencySymbol>€</CurrencySymbol>
+      <BankSymbol>EUR</BankSymbol>
+      <CurrencyName>евро</CurrencyName>
+      <DecimalPlaces>2</DecimalPlaces>
+    </Currency>
   </LC_CURRENCY>
   <LC_TRANSLITERATION ref="en_US"/>
   <LC_MISC>
diff --git a/officecfg/registry/data/org/openoffice/Office/Calc.xcu 
b/officecfg/registry/data/org/openoffice/Office/Calc.xcu
index eda60fe6c434..2b1e0e2bf5a3 100644
--- a/officecfg/registry/data/org/openoffice/Office/Calc.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Calc.xcu
@@ -239,6 +239,17 @@
         <value>7.53450</value>
       </prop>
     </node>
+    <node oor:name="CR21" oor:op="replace">
+      <prop oor:name="FromUnit">
+        <value>EUR</value>
+      </prop>
+      <prop oor:name="ToUnit">
+        <value>BLN</value>
+      </prop>
+      <prop oor:name="Factor">
+        <value>1.95583</value>
+      </prop>
+    </node>
   </node>
   <node oor:name="Calculate">
     <node oor:name="Other">
diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx
index 81013d3ed099..19f54be56792 100644
--- a/sc/source/core/tool/interpr2.cxx
+++ b/sc/source/core/tool/interpr2.cxx
@@ -3312,7 +3312,8 @@ static bool lclConvertMoney( std::u16string_view 
aSearchUnit, double& rfRate, in
         { "EEK", 15.6466,  2 },
         { "LVL", 0.702804, 2 },
         { "LTL", 3.45280,  2 },
-        { "HRK", 7.53450,  2 }
+        { "HRK", 7.53450,  2 },
+        { "BLN", 1.95583,  2 }
     };
 
     for (const auto & i : aConvertTable)
diff --git a/wizards/source/euro/Init.xba b/wizards/source/euro/Init.xba
index 9f56c503a347..69a5d91ed02f 100644
--- a/wizards/source/euro/Init.xba
+++ b/wizards/source/euro/Init.xba
@@ -90,6 +90,7 @@ Public sCurrESTONIAN as String
 Public sCurrLATVIAN as String
 Public sCurrLITHUANIAN as String
 Public sCurrCROATIAN as String
+Public sCurrBULGARIAN as String
 
 Public sPrgsRETRIEVAL as String
 Public sPrgsCONVERTING as String
@@ -216,6 +217,7 @@ Dim LocWorkPath as String
                sCurrLATVIAN = GetResText(&quot;CURRENCIES_17&quot;)
                sCurrLITHUANIAN = GetResText(&quot;CURRENCIES_18&quot;)
                sCurrCROATIAN = GetResText(&quot;CURRENCIES_19&quot;)
+               sCurrBULGARIAN = GetResText(&quot;CURRENCIES_20&quot;)
                .cmdCancel.Label =  sCANCEL
                .cmdHelp.Label =  sHELP
                .cmdBack.Label =  GetResText(&quot;STEP_ZERO_2&quot;)
@@ -400,6 +402,11 @@ Sub InitializeLanguages()
     LangIDValue(19,0,1) = &quot;HR&quot;
     LangIDValue(19,0,2) = &quot;-41A&quot;
 
+&apos; CURRENCIES_BULGARIAN
+    LangIDValue(20,0,0) = &quot;bg&quot;
+    LangIDValue(20,0,1) = &quot;BG&quot;
+    LangIDValue(20,0,2) = &quot;-402&quot;
+
 End Sub
 
 
@@ -588,6 +595,15 @@ Dim i as Integer
        CurrValue(19,4) = &quot;kn&quot;
        CurrValue(19,5) = &quot;HRK&quot;
 
+       CurrValue(20,0) = sCurrBULGARIAN
+       &apos; real conversion rate
+       CurrValue(20,1) = 1.95583
+       &apos; rounded conversion rate
+       CurrValue(20,2) = 2
+       CurrValue(20,3) = &quot;лв.&quot;
+       CurrValue(20,4) = &quot;лв.&quot;
+       CurrValue(20,5) = &quot;BLN&quot;
+
        i = -1
        CurrSymbolList(0) = &quot;&quot;
        CurrSymbolList(1) = &quot;&quot;
diff --git a/wizards/source/resources/resources_en_US.properties 
b/wizards/source/resources/resources_en_US.properties
index d75cb03bdf05..5ae6382ccafa 100644
--- a/wizards/source/resources/resources_en_US.properties
+++ b/wizards/source/resources/resources_en_US.properties
@@ -449,6 +449,7 @@ CURRENCIES_16=Estonian Kroon
 CURRENCIES_17=Latvian Lats
 CURRENCIES_18=Lithuanian Litas
 CURRENCIES_19=Croatian Kuna
+CURRENCIES_20=Bulgarian Lew
 STEP_LASTPAGE_0=Progress
 STEP_LASTPAGE_1=Retrieving the relevant documents...
 STEP_LASTPAGE_2=Converting the documents...
commit 6b97390eb6c90abe78f17e7cfb31e5b175e34d61
Author:     Justin Luth <justin.l...@collabora.com>
AuthorDate: Tue Jul 15 15:36:16 2025 -0400
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:13 2025 +0200

    tdf#153684 spellcheck: ignore non-case character when !IsSpellUpperCase
    
    This fixes a 7.5 regression from
    commit ab0adac692b67fe7b63dee665607400c6a7e6c01
        Fix everything using XCharacterClassification::getStringType()...
    
    Prior to erack's commit, all of the character-type-flags were grouped
    together. So it could be a mix of UPPER, LOWER, and TITLE_CASE.
    IsUpper returned true if there was at least one UPPER and no LOWER.
        return      (nFlags & KCharacterType::UPPER)
                && !(nFlags & KCharacterType::LOWER);
    
    Since it was a group of flags, any characters that were non-case
    (like a fullstop) did not affect the result of IsUpper.
    
    But when it was changed in 7.5 to
        return aCC.isUpper( rText, nPos, nLen );
    now every character needed to be considered to be upper-case,
    even if it was a non-case character.
    
    So this patch changes the logic back to the original state
    (more or less).
    The fly in the ointment are any Unicode characters
    that would be considered to be TITLE_CASE.
    Previously they were ignored (i.e. they didn't affect the outcome),
    but now I consider them to be non-uppercase.
    That seems to me to be the intent here anyway,
    so probably this implementation "fixes a bug"
    when a word consisted of a mixture of UPPER and TITLE_CASE chars.
    
    Change-Id: I7cf1d68bc3eb0a1a468da9e67ab54d1148f097aa
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187934
    Reviewed-by: Justin Luth <jl...@mail.com>
    Tested-by: Jenkins
    (cherry picked from commit 53a9cee01759ce54c4ee50468958531a360640f9)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187936
    Reviewed-by: Eike Rathke <er...@redhat.com>
    (cherry picked from commit 952412154a4872d0f06a60c44506278924bb9c62)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188006

diff --git a/include/unotools/charclass.hxx b/include/unotools/charclass.hxx
index bc91aca63631..561cdc09c22a 100644
--- a/include/unotools/charclass.hxx
+++ b/include/unotools/charclass.hxx
@@ -176,8 +176,6 @@ public:
     bool isNumeric( const OUString& rStr ) const;
     bool isLetterNumeric( const OUString& rStr ) const;
 
-    bool isUpper( const OUString& rStr, sal_Int32 nPos, sal_Int32 nCount ) 
const;
-
 private:
 
     const css::lang::Locale &  getMyLocale() const;
diff --git a/linguistic/source/misc.cxx b/linguistic/source/misc.cxx
index 088cde001f20..8bf6ea605c85 100644
--- a/linguistic/source/misc.cxx
+++ b/linguistic/source/misc.cxx
@@ -559,8 +559,25 @@ uno::Reference< XHyphenatedWord > 
RebuildHyphensAndControlChars(
 
 bool IsUpper( const OUString &rText, sal_Int32 nPos, sal_Int32 nLen, 
LanguageType nLanguage )
 {
+    assert(nPos >= 0 && nLen > 0);
     CharClass aCC(( LanguageTag( nLanguage ) ));
-    return aCC.isUpper( rText, nPos, nLen );
+
+    bool bCaseIsAlwaysUppercase = false;
+    const sal_Int32 nEnd = std::min(nPos + nLen, rText.getLength());
+    while (nPos < nEnd)
+    {
+        // only consider characters that have case-status
+        if (aCC.isAlpha(rText, nPos))
+        {
+            if (aCC.isUpper(rText, nPos))
+                bCaseIsAlwaysUppercase = true;
+            else
+                return false;
+        }
+        rText.iterateCodePoints(&nPos);
+    }
+
+    return bCaseIsAlwaysUppercase;
 }
 
 CapType capitalType(const OUString& aTerm, CharClass const * pCC)
diff --git a/unotools/source/i18n/charclass.cxx 
b/unotools/source/i18n/charclass.cxx
index 423f9530f2cb..da66b0fa59d2 100644
--- a/unotools/source/i18n/charclass.cxx
+++ b/unotools/source/i18n/charclass.cxx
@@ -288,33 +288,6 @@ bool CharClass::isUpper( const OUString& rStr, sal_Int32 
nPos ) const
     return false;
 }
 
-bool CharClass::isUpper( const OUString& rStr, sal_Int32 nPos, sal_Int32 
nCount ) const
-{
-    if (rStr.isEmpty())
-        return false;
-
-    assert(nPos >= 0 && nPos < rStr.getLength() && nCount > 0);
-    if (nPos < 0 || nPos >= rStr.getLength() || nCount == 0)
-        return false;
-
-    try
-    {
-        const sal_Int32 nLen = std::min( nPos + nCount, rStr.getLength());
-        while (nPos < nLen)
-        {
-            if (!isUpper( rStr, nPos))
-                return false;
-            rStr.iterateCodePoints( &nPos);
-        }
-        return true;
-    }
-    catch ( const Exception& )
-    {
-        TOOLS_WARN_EXCEPTION("unotools.i18n", "" );
-    }
-    return false;
-}
-
 OUString CharClass::titlecase(const OUString& rStr, sal_Int32 nPos, sal_Int32 
nCount) const
 {
     try
commit 305a5ac6580b1b257769317d7a69c205670f289a
Author:     Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
AuthorDate: Mon Aug 18 14:04:33 2025 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:13 2025 +0200

    tdf#166947 properly fix windows installation sets for aarch64
    
    While https://learn.microsoft.com/en-us/windows/win32/msi/template-summary
    says that the value should be Arm64 for aarch64, the installsets created
    by the baseline fail to install/produce error 1620 on installation.
    The missing bit was that for that to work properly the msi summary
    information table must be at least schema version 500.
    
    That is mentioned here:
    
https://learn.microsoft.com/en-us/windows/win32/msi/using-64-bit-windows-installer-packages
    
    Thanks a lot to Mike Kaganski for that pointer
    
    this cherry-pick contains part of the janitorial cleanup that replaced
    pointless function calls to get static values from
    25d62325f320ba75a2b64584fe1d5d98c18275f1
    
    Change-Id: I5fc84f877c6af98c78107ff99920def7053a3950
    (cherry picked from commit 354f6d4eb00bf7cc5e2ae576706f101fb544eab3)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189869
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/solenv/bin/modules/installer/windows/msiglobal.pm 
b/solenv/bin/modules/installer/windows/msiglobal.pm
index 3b392c4fd4a1..235033d374a7 100644
--- a/solenv/bin/modules/installer/windows/msiglobal.pm
+++ b/solenv/bin/modules/installer/windows/msiglobal.pm
@@ -490,16 +490,6 @@ sub create_msi_database
     }
 }
 
-#################################################################
-# Returning the msi version for the Summary Information Stream
-#################################################################
-
-sub get_msiversion_for_sis
-{
-    my $msiversion = "200";
-    return $msiversion;
-}
-
 #################################################################
 # Returning the word count for the Summary Information Stream
 #################################################################
@@ -608,7 +598,9 @@ sub write_summary_into_msi_database
 
     my $msiinfo = "msiinfo.exe";    # Has to be in the path
 
-    my $msiversion = get_msiversion_for_sis();
+    # schema version needs to be at least 500 to support 64bit packages on 
Arm64
+    # see 
https://learn.microsoft.com/en-us/windows/win32/msi/using-64-bit-windows-installer-packages
+    my $msiversion = 500;
     my $codepage = 0; # PID_CODEPAGE summary property in a signed short, 
therefore it is impossible to set 65001 here.
     my $template = get_template_for_sis($language, $allvariableshashref);
     my $guid = get_packagecode_for_sis();
commit f16e982bdf85427e1cba1fe300bf1f5a1b76d6e2
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Thu Aug 14 22:37:05 2025 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:13 2025 +0200

    postgresql: upgrade to 14.19
    
    Downloaded from 
https://ftp.postgresql.org/pub/source/v14.19/postgresql-14.19.tar.bz2
    
    Change-Id: Ied1619e7a8c01fee9ad137ac5edc5e5869bd278c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189648
    Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
    Tested-by: Jenkins

diff --git a/download.lst b/download.lst
index 48122018f056..c1f06779da30 100644
--- a/download.lst
+++ b/download.lst
@@ -653,8 +653,8 @@ POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POSTGRESQL_SHA256SUM := 
83ab29d6bfc3dc58b2ed3c664114fdfbeb6a0450c4b8d7fa69aee91e3ca14f8e
-POSTGRESQL_TARBALL := postgresql-14.18.tar.bz2
+POSTGRESQL_SHA256SUM := 
727e9e334bc1a31940df808259f69fe47a59f6d42174b22ae62d67fe7a01ad80
+POSTGRESQL_TARBALL := postgresql-14.19.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
commit 7299d648aa38417dd783f7a5b158b3de7af02c03
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Fri Aug 15 11:44:08 2025 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:13 2025 +0200

    tdf#167936 crash when opening document from UNO pipe (2)
    
    second attempt at this, the first commit did not catch all the places
    
    regression from
        commit a6ad198d097fb4a503c8d5831d484ff46721134b
        Author: Noel Grandin <noel.gran...@collabora.co.uk>
        Date:   Sat Aug 17 13:19:54 2024 +0200
        tdf#158556 use more comphelper::ByteReader
    
    Change-Id: If3ab68f7cf147082ec296d6679d48f15ec0fdcb9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189669
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Tested-by: Jenkins

diff --git a/package/source/xstor/switchpersistencestream.cxx 
b/package/source/xstor/switchpersistencestream.cxx
index 6613b8b046b1..8052ff9ecc63 100644
--- a/package/source/xstor/switchpersistencestream.cxx
+++ b/package/source/xstor/switchpersistencestream.cxx
@@ -256,7 +256,15 @@ uno::Reference< io::XOutputStream > SAL_CALL 
SwitchablePersistenceStream::getOut
     if ( !m_pStreamData->m_xOrigInStream.is() )
         throw uno::RuntimeException();
 
-    return m_pStreamData->m_pByteReader->readSomeBytes( aData, nBytesToRead );
+    if (m_pStreamData->m_pByteReader)
+        return m_pStreamData->m_pByteReader->readSomeBytes( aData, 
nBytesToRead );
+    else
+    {
+        css::uno::Sequence < sal_Int8 > aSequence;
+        sal_Int32 nBytesActuallyRead = 
m_pStreamData->m_xOrigInStream->readSomeBytes( aSequence, nBytesToRead );
+        memcpy(aData, aSequence.getConstArray(), nBytesActuallyRead);
+        return nBytesActuallyRead;
+    }
 }
 
 void SAL_CALL SwitchablePersistenceStream::skipBytes( ::sal_Int32 nBytesToSkip 
)
diff --git a/package/source/zipapi/ByteGrabber.cxx 
b/package/source/zipapi/ByteGrabber.cxx
index bc1206986c5c..23b157423df8 100644
--- a/package/source/zipapi/ByteGrabber.cxx
+++ b/package/source/zipapi/ByteGrabber.cxx
@@ -60,7 +60,14 @@ void ByteGrabber::setInputStream (const uno::Reference < 
io::XInputStream >& xNe
 sal_Int32 ByteGrabber::readBytes( sal_Int8* aData,
                                         sal_Int32 nBytesToRead )
 {
-    return mpByteReader->readSomeBytes(aData, nBytesToRead );
+    if (mpByteReader)
+        return mpByteReader->readSomeBytes(aData, nBytesToRead );
+    else
+    {
+        sal_Int32 nBytesActuallyRead = xStream->readSomeBytes(aSequence, 
nBytesToRead);
+        memcpy(aData, aSequence.getConstArray(), nBytesActuallyRead);
+        return nBytesActuallyRead;
+    }
 }
 
 // XSeekable chained...
commit c8d7d75af49fa0f109fdfa95912600497d0a2594
Author:     Patrick Luby <guibmac...@gmail.com>
AuthorDate: Thu Aug 14 13:48:44 2025 -0400
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:13 2025 +0200

    tdf#167916 Skip merging of the macabdrv1 library
    
    macabdrv1 symbols can't be loaded with --enable-mergelibs=more so
    leave it unmerged.
    
    Change-Id: If88059783ebc2be29a9011244947671891801cab
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189640
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Reviewed-by: Patrick Luby <guibomac...@gmail.com>

diff --git a/solenv/gbuild/extensions/pre_MergedLibsList.mk 
b/solenv/gbuild/extensions/pre_MergedLibsList.mk
index 2592112bd3d9..8f1d4a2df777 100644
--- a/solenv/gbuild/extensions/pre_MergedLibsList.mk
+++ b/solenv/gbuild/extensions/pre_MergedLibsList.mk
@@ -159,7 +159,6 @@ gb_MERGE_LIBRARY_LIST += \
        $(if $(ENABLE_LWP),lwpft) \
        $(if $(filter $(OS),MACOSX), \
                macab1 \
-               macabdrv1 \
        ) \
        mozbootstrap \
        msforms \
commit 6313bfdbbc1fe027ec2ff3fd04fda85cb1c273ee
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Thu Aug 14 11:42:03 2025 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:13 2025 +0200

    tdf#167936 crash when opening document from UNO pipe
    
    regression from
        commit a6ad198d097fb4a503c8d5831d484ff46721134b
        Author: Noel Grandin <noel.gran...@collabora.co.uk>
        Date:   Sat Aug 17 13:19:54 2024 +0200
        tdf#158556 use more comphelper::ByteReader
    
    Change-Id: I2cc14d0dbb0214dcf54938796eeeebefbd86bd88
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189577
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    (cherry picked from commit 7e71af5af43da1f7a7cb0bc4d5319f277a67738a)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189589
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/package/inc/ByteGrabber.hxx b/package/inc/ByteGrabber.hxx
index ea7e6867a4bc..85435fd0c753 100644
--- a/package/inc/ByteGrabber.hxx
+++ b/package/inc/ByteGrabber.hxx
@@ -33,6 +33,7 @@ class ByteGrabber final
     css::uno::Reference < css::io::XSeekable > xSeek;
     comphelper::ByteReader* mpByteReader;
     std::array<sal_Int8, 8> maBuffer;
+    css::uno::Sequence < sal_Int8 > aSequence;
 
 public:
     ByteGrabber (css::uno::Reference < css::io::XInputStream > const & 
xIstream);
diff --git a/package/source/zipapi/ByteGrabber.cxx 
b/package/source/zipapi/ByteGrabber.cxx
index 7d7c77a0228f..bc1206986c5c 100644
--- a/package/source/zipapi/ByteGrabber.cxx
+++ b/package/source/zipapi/ByteGrabber.cxx
@@ -39,9 +39,11 @@ using namespace ::com::sun::star;
 ByteGrabber::ByteGrabber(uno::Reference  < io::XInputStream > const & xIstream)
 : xStream(xIstream)
 , xSeek (xIstream, uno::UNO_QUERY )
+, aSequence ( 4 )
 {
+    // The input stream here could be from a remote UNO connection, in which
+    // case it will not implement comphelper::ByteReader.
     mpByteReader = dynamic_cast<comphelper::ByteReader*>(xStream.get());
-    assert(mpByteReader);
 }
 
 ByteGrabber::~ByteGrabber()
@@ -53,7 +55,6 @@ void ByteGrabber::setInputStream (const uno::Reference < 
io::XInputStream >& xNe
     xStream = xNewStream;
     xSeek.set(xNewStream, uno::UNO_QUERY);
     mpByteReader = dynamic_cast<comphelper::ByteReader*>(xStream.get());
-    assert(mpByteReader);
 }
 
 sal_Int32 ByteGrabber::readBytes( sal_Int8* aData,
@@ -89,39 +90,85 @@ sal_Int64 ByteGrabber::getLength(  )
 
 sal_uInt16 ByteGrabber::ReadUInt16()
 {
-    if (mpByteReader->readSomeBytes(maBuffer.data(), 2) != 2)
-        return 0;
-
-    return static_cast <sal_uInt16>
-           ( (maBuffer[0] & 0xFF)
-          | (maBuffer[1] & 0xFF) << 8);
+    if (mpByteReader)
+    {
+        if (mpByteReader->readSomeBytes(maBuffer.data(), 2) != 2)
+            return 0;
+
+        return static_cast <sal_uInt16>
+               ( (maBuffer[0] & 0xFF)
+                 | (maBuffer[1] & 0xFF) << 8);
+    }
+    else
+    {
+        if (xStream->readBytes(aSequence, 2) != 2)
+            return 0;
+
+        const sal_Int8 *pSequence = aSequence.getConstArray();
+        return static_cast <sal_uInt16>
+               ( (pSequence[0] & 0xFF)
+                 | (pSequence[1] & 0xFF) << 8);
+    }
 }
 
 sal_uInt32 ByteGrabber::ReadUInt32()
 {
-    if (mpByteReader->readSomeBytes(maBuffer.data(), 4) != 4)
-        return 0;
-
-    return static_cast < sal_uInt32 >
-            ( (maBuffer[0] & 0xFF)
-          | ( maBuffer[1] & 0xFF ) << 8
-          | ( maBuffer[2] & 0xFF ) << 16
-          | ( maBuffer[3] & 0xFF ) << 24 );
+    if (mpByteReader)
+    {
+        if (mpByteReader->readSomeBytes(maBuffer.data(), 4) != 4)
+            return 0;
+
+        return static_cast < sal_uInt32 >
+                ( (maBuffer[0] & 0xFF)
+              | ( maBuffer[1] & 0xFF ) << 8
+              | ( maBuffer[2] & 0xFF ) << 16
+              | ( maBuffer[3] & 0xFF ) << 24 );
+    }
+    else
+    {
+        if (xStream->readBytes(aSequence, 4) != 4)
+            return 0;
+
+        const sal_Int8 *pSequence = aSequence.getConstArray();
+        return static_cast < sal_uInt32 >
+                ( (pSequence[0] & 0xFF)
+              | ( pSequence[1] & 0xFF ) << 8
+              | ( pSequence[2] & 0xFF ) << 16
+              | ( pSequence[3] & 0xFF ) << 24 );
+    }
 }
 
 sal_uInt64 ByteGrabber::ReadUInt64()
 {
-    if (mpByteReader->readSomeBytes(maBuffer.data(), 8) != 8)
-        return 0;
-
-    return  static_cast<sal_uInt64>(maBuffer[0] & 0xFF)
-          | static_cast<sal_uInt64>(maBuffer[1] & 0xFF) << 8
-          | static_cast<sal_uInt64>(maBuffer[2] & 0xFF) << 16
-          | static_cast<sal_uInt64>(maBuffer[3] & 0xFF) << 24
-          | static_cast<sal_uInt64>(maBuffer[4] & 0xFF) << 32
-          | static_cast<sal_uInt64>(maBuffer[5] & 0xFF) << 40
-          | static_cast<sal_uInt64>(maBuffer[6] & 0xFF) << 48
-          | static_cast<sal_uInt64>(maBuffer[7] & 0xFF) << 56;
+    if (mpByteReader)
+    {
+        if (mpByteReader->readSomeBytes(maBuffer.data(), 8) != 8)
+            return 0;
+
+        return  static_cast<sal_uInt64>(maBuffer[0] & 0xFF)
+              | static_cast<sal_uInt64>(maBuffer[1] & 0xFF) << 8
+              | static_cast<sal_uInt64>(maBuffer[2] & 0xFF) << 16
+              | static_cast<sal_uInt64>(maBuffer[3] & 0xFF) << 24
+              | static_cast<sal_uInt64>(maBuffer[4] & 0xFF) << 32
+              | static_cast<sal_uInt64>(maBuffer[5] & 0xFF) << 40
+              | static_cast<sal_uInt64>(maBuffer[6] & 0xFF) << 48
+              | static_cast<sal_uInt64>(maBuffer[7] & 0xFF) << 56;
+    }
+    else
+    {
+        if (xStream->readBytes(aSequence, 8) != 8)
+            return 0;
+
+        const sal_Int8 *pSequence = aSequence.getConstArray();
+        return  static_cast<sal_uInt64>(pSequence[0] & 0xFF)
+              | static_cast<sal_uInt64>(pSequence[1] & 0xFF) << 8
+              | static_cast<sal_uInt64>(pSequence[2] & 0xFF) << 16
+              | static_cast<sal_uInt64>(pSequence[3] & 0xFF) << 24
+              | static_cast<sal_uInt64>(pSequence[4] & 0xFF) << 32
+              | static_cast<sal_uInt64>(pSequence[5] & 0xFF) << 40
+              | static_cast<sal_uInt64>(pSequence[6] & 0xFF) << 48
+              | static_cast<sal_uInt64>(pSequence[7] & 0xFF) << 56;
+    }
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit e022a7bc34b2a21d8f03e3b9c34d08f6ee3c5491
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Wed Aug 6 09:06:05 2025 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    cid#1659628 can only reach this line in the case of a caught exception
    
    so move it into that block protected by the rGuard.lock()
    
    Change-Id: I8e0bde5a7de6ec5428b405f734d6c8e54fb1645e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188994
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Tested-by: Jenkins
    (cherry picked from commit a2bbf65bb44229cadd1bc325ef174322b625a36b)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189484
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/ucb/source/cacher/cachedcontentresultset.cxx 
b/ucb/source/cacher/cachedcontentresultset.cxx
index 4a554f7ff768..9fa929cdf343 100644
--- a/ucb/source/cacher/cachedcontentresultset.cxx
+++ b/ucb/source/cacher/cachedcontentresultset.cxx
@@ -754,9 +754,8 @@ bool CachedContentResultSet
             }
             else
                 throw;
+            return nRow == m_nLastAppliedPos;
         }
-
-        return nRow == m_nLastAppliedPos;
     }
     return true;
 };
commit ea776a51e0b37325be246fb9e90f58e2b6678986
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Mon Jul 21 16:30:46 2025 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    tdf#159775: restore filename from URL on redirection
    
    Some github release URLs, like
    
    https://github.com/hanya/MRI/releases/download/v1.3.5/MRI-1.3.5.oxt
    
    get redirected to something like
    
    
https://release-assets.githubusercontent.com/github-production-release-asset/3265966/eff2c80e-138d-4b06-8139-e433f4672379?...
    
    of which, 'eff2c80e-138d-4b06-8139-e433f4672379' is used as
    ucbhelper::Content's title. That is used to construct local
    filename in UpdateInstallDialog::Thread::download. Later in
    PackageRegistryImpl::bindPackage, the extension of the file
    will be used to detect the mediatype; if failed, operation
    will abort.
    
    Detect this situation, and restore the filename from URL.
    
    Change-Id: Ib95189ff35e07fd01c95f87827c6f620ebfe2fe1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188114
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    (cherry picked from commit b729b0bb677bd2b82492b45806ed3ddd91d2234f)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188188
    Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com>
    (cherry picked from commit 59340251fa4c403c0659e0016ff1e606b829c669)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189297
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx 
b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx
index 7de11a2dadb0..ec94d60ac5be 100644
--- a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx
+++ b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx
@@ -48,6 +48,7 @@
 #include <dp_misc.h>
 #include "dp_gui_extensioncmdqueue.hxx"
 #include <ucbhelper/content.hxx>
+#include <tools/urlobj.hxx>
 #include <rtl/ustrbuf.hxx>
 #include <rtl/ref.hxx>
 #include <salhelper/thread.hxx>
@@ -558,7 +559,20 @@ bool UpdateInstallDialog::Thread::download(OUString const 
& sDownloadURL, Update
     ::ucbhelper::Content sourceContent;
     (void)dp_misc::create_ucb_content(&sourceContent, sDownloadURL, 
m_updateCmdEnv);
 
-    const OUString sTitle( StrTitle::getTitle( sourceContent ) );
+    OUString sTitle(StrTitle::getTitle(sourceContent));
+    if (sTitle.indexOf('.') < 0)
+    {
+        // The title could be changed due to redirection (seen with github 
URLs, which arrive
+        // something like 'eff2c80e-138d-4b06-8139-e433f4672379'). This will 
create problems in
+        // PackageRegistryImpl::bindPackage, where extension will be required 
to get mediatype.
+        // Try to restore the filename with extension from the URL.
+        // TODO: could also use Content-Disposition (RFC 6266), where the 
filename is provided.
+        INetURLObject aUrl(sDownloadURL);
+        aUrl.removeFinalSlash();
+        OUString newTitle = 
aUrl.GetLastName(INetURLObject::DecodeMechanism::WithCharset);
+        if (newTitle.indexOf('.') >= 0)
+            sTitle = newTitle;
+    }
 
     destFolderContent.transferContent(
             sourceContent, ::ucbhelper::InsertOperation::Copy,
commit 3e75a872ca9e566284aafbd74aa07a98238dcf9f
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Fri Feb 14 13:37:23 2025 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    gtk4: Own the string when freeing it
    
    As the GVariant format string doc says [1] about
    pointers:
    
    > The `&` character is used to indicate that serialised data should be
    > directly exchanged via a pointer.
    >
    > Currently, the only use for this character is when it is applied to a
    > string (ie: `&s`, `&o` or `&g`). For `g_variant_new()` this has 
absolutely no
    > effect. The string is collected and duplicated normally. For
    > `g_variant_get()` it means that instead of creating a newly allocated copy
    > of the string, a pointer to the serialised data is returned. This
    > pointer should not be freed. Validity checks are performed to ensure
    > that the string data will always be properly nul-terminated.
    
    Therefore, freeing the string with
    
        g_free(pLabel);
    
    is incorrect and resulted in a crash when starting Writer with
    the gtk4 VCL plugin, s. backtrace below.
    
    Use just "s" instead of "&s" for the format string to get a
    string copy that is owned and can be freed.
    
    (Dropping the `g_free` might be an alternative and avoid
    a string copy, but it's not instantly clear to me whether
    using "a pointer to the serialised data" is safe without
    digging any deeper what exactly that means.)
    
    Backtrace:
    
        free(): invalid pointer
        [New Thread 125500.125502]
        [New Thread 125500.125503]
        [New Thread 125500.125504]
        [New Thread 125500.125505]
        [New Thread 125500.125506]
        [New Thread 125500.125507]
        [New Thread 125500.125508]
        [New Thread 125500.125510]
        [New Thread 125500.125511]
        [New Thread 125500.125525]
    
        Thread 1 received signal SIGABRT, Aborted.
        __pthread_kill_implementation (threadid=<optimized out>, 
signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
        warning: 44     ./nptl/pthread_kill.c: No such file or directory
        (rr) bt
        #0  __pthread_kill_implementation (threadid=<optimized out>, 
signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
        #1  0x00007f0bb969de2f in __pthread_kill_internal (threadid=<optimized 
out>, signo=6) at ./nptl/pthread_kill.c:78
        #2  0x00007f0bb9649d02 in __GI_raise (sig=sig@entry=6) at 
../sysdeps/posix/raise.c:26
        #3  0x00007f0bb96324f0 in __GI_abort () at ./stdlib/abort.c:79
        #4  0x00007f0bb963332d in __libc_message_impl 
(fmt=fmt@entry=0x7f0bb97b5303 "%s
") at ../sysdeps/posix/libc_fatal.c:134
        #5  0x00007f0bb96a7965 in malloc_printerr (str=str@entry=0x7f0bb97b3082 
"free(): invalid pointer") at ./malloc/malloc.c:5772
        #6  0x00007f0bb96a9bf4 in _int_free (av=0x7f0bb97f1ac0 <main_arena>, 
p=<optimized out>, have_lock=have_lock@entry=0) at ./malloc/malloc.c:4507
        #7  0x00007f0bb96ac43f in __GI___libc_free (mem=<optimized out>) at 
./malloc/malloc.c:3398
        #8  0x00007f0ba62b908a in (anonymous 
namespace)::MenuHelper::get_item_label (this=0x55b0c8dcd360, rIdent="standard") 
at vcl/unx/gtk4/../gtk3/gtkinst.cxx:5684
        #9  0x00007f0ba63013d8 in (anonymous 
namespace)::GtkInstanceMenu::get_label (this=0x55b0c8dcd360, rIdent="standard") 
at vcl/unx/gtk4/../gtk3/gtkinst.cxx:11694
        #10 0x00007f0ba6301b2f in virtual thunk to (anonymous 
namespace)::GtkInstanceMenu::get_label(rtl::OUString const&) const () at 
vcl/unx/gtk4/../gtk3/gtkinst.cxx:11823
        #11 0x00007f0bb482d026 in (anonymous 
namespace)::SelectionTypePopup::GetItemTextForState (this=0x7ffed304ad80, 
nState=0) at 
/home/michi/development/git/libreoffice/svx/source/stbctrls/selctrl.cxx:56
        #12 0x00007f0bb482cc59 in 
SvxSelectionModeControl::StateChangedAtStatusBarControl (this=0x55b0c8d2d6e0, 
eState=SfxItemState::DEFAULT, pState=0x55b0c8f331c0) at 
/home/michi/development/git/libreoffice/svx/source/stbctrls/selctrl.cxx:128
        #13 0x00007f0bb5f9af1e in SfxStatusBarControl::statusChanged 
(this=0x55b0c8d2d6e0, rEvent=...) at 
/home/michi/development/git/libreoffice/sfx2/source/statbar/stbitem.cxx:263
        #14 0x00007f0bb5a9d4c8 in SfxDispatchController_Impl::addStatusListener 
(this=0x55b0c8ed6380, aListener=uno::Reference to (SvxSelectionModeControl *) 
0x55b0c8d2d6f0, aURL=...)
            at 
/home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:841
        #15 0x00007f0bb5a9d174 in SfxOfficeDispatch::addStatusListener 
(this=0x55b0c8f280e0, aListener=uno::Reference to (SvxSelectionModeControl *) 
0x55b0c8d2d6f0, aURL=...)
            at 
/home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:283
        #16 0x00007f0bb28a8577 in svt::StatusbarController::bindListener 
(this=0x55b0c8d2d6e0) at 
/home/michi/development/git/libreoffice/svtools/source/uno/statusbarcontroller.cxx:462
        #17 0x00007f0bb28a7f09 in svt::StatusbarController::update 
(this=0x55b0c8d2d6e0) at 
/home/michi/development/git/libreoffice/svtools/source/uno/statusbarcontroller.cxx:169
        #18 0x00007f0bb6d41a6b in framework::(anonymous 
namespace)::lcl_UpdateController<std::__debug::map<unsigned short, 
com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController>, 
std::less<unsigned short>, std::allocator<std::pair<unsigned short const, 
com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > > 
> >::operator() (this=0x7ffed304b547, rElement={...})
            at 
/home/michi/development/git/libreoffice/framework/source/uielement/statusbarmanager.cxx:69
        #19 0x00007f0bb6d3e5ef in 
std::for_each<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<unsigned
 short const, 
com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > 
>, std::__debug::map<unsigned short, 
com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController>, 
std::less<unsigned short>, std::allocator<std::pair<unsigned short const, 
com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > > 
>, std::bidirectional_iterator_tag>, framework::(anonymous 
namespace)::lcl_UpdateController<std::__debug::map<unsigned short, 
com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController>, 
std::less<unsigned short>, std::allocator<std::pair<unsigned short const, 
com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > > 
> > > (__first={...}, __last={...}, __f=...)
            at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/stl_algo.h:3786
        #20 0x00007f0bb6d3d9a5 in 
framework::StatusBarManager::UpdateControllers (this=0x55b0c8cefc90) at 
/home/michi/development/git/libreoffice/framework/source/uielement/statusbarmanager.cxx:269
        #21 0x00007f0bb6d4028b in framework::StatusBarManager::FillStatusBar 
(this=0x55b0c8cefc90, rItemContainer=uno::Reference to 
(framework::ConstItemContainer *) 0x55b0c8e017e8)
            at 
/home/michi/development/git/libreoffice/framework/source/uielement/statusbarmanager.cxx:479
        #22 0x00007f0bb6d4ae38 in framework::StatusBarWrapper::initialize 
(this=0x55b0c8d0f060, aArguments=uno::Sequence of length 4 = {...}) at 
/home/michi/development/git/libreoffice/framework/source/uielement/statusbarwrapper.cxx:117
        #23 0x00007f0bb6df9104 in framework::MenuBarFactory::CreateUIElement
            (ResourceURL="private:resource/statusbar/statusbar", 
Args=uno::Sequence of length 2 = {...}, 
ResourceType=u"private:resource/statusbar/", _xMenuBar=uno::Reference to 
(framework::StatusBarWrapper *) 0x55b0c8d0f0f8, _rxContext=uno::Reference to 
(cppu::(anonymous namespace)::ComponentContext *) 0x55b0ba8b8308) at 
/home/michi/development/git/libreoffice/framework/source/uifactory/menubarfactory.cxx:158
        #24 0x00007f0bb6df9c0a in (anonymous 
namespace)::StatusBarFactory::createUIElement (this=0x55b0c8e03800, 
ResourceURL="private:resource/statusbar/statusbar", Args=uno::Sequence of 
length 2 = {...})
            at 
/home/michi/development/git/libreoffice/framework/source/uifactory/statusbarfactory.cxx:68
        #25 0x00007f0bb6df9d74 in non-virtual thunk to (anonymous 
namespace)::StatusBarFactory::createUIElement(rtl::OUString const&, 
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
            at 
/home/michi/development/git/libreoffice/instdir/program/libfwklo.so
        #26 0x00007f0bb6e01290 in (anonymous 
namespace)::UIElementFactoryManager::createUIElement (this=0x55b0bf803260, 
ResourceURL="private:resource/statusbar/statusbar", Args=uno::Sequence of 
length 2 = {...})
            at 
/home/michi/development/git/libreoffice/framework/source/uifactory/uielementfactorymanager.cxx:440
        #27 0x00007f0bb6e024f4 in non-virtual thunk to (anonymous 
namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, 
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
            at 
/home/michi/development/git/libreoffice/instdir/program/libfwklo.so
        #28 0x00007f0bb6b6d427 in 
framework::LayoutManager::implts_createElement (this=0x55b0c1e3a170, 
aName="private:resource/statusbar/statusbar")
            at 
/home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:730
        #29 0x00007f0bb6b71852 in 
framework::LayoutManager::implts_createStatusBar (this=0x55b0c1e3a170, 
aStatusBarName="private:resource/statusbar/statusbar")
            at 
/home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:849
        #30 0x00007f0bb6b75bcc in framework::LayoutManager::createElement 
(this=0x55b0c1e3a170, aName="private:resource/statusbar/statusbar") at 
/home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:1443
        #31 0x00007f0bb6b76b57 in framework::LayoutManager::requestElement 
(this=0x55b0c1e3a170, rResourceURL="private:resource/statusbar/statusbar")
            at 
/home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:1570
        #32 0x00007f0bb595f0b5 in SfxWorkWindow::UpdateStatusBar_Impl 
(this=0x55b0bf82f570) at 
/home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1471
        #33 0x00007f0bb595e9a0 in SfxWorkWindow::UpdateObjectBars_Impl2 
(this=0x55b0bf82f570) at 
/home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1242
        #34 0x00007f0bb595e001 in SfxWorkWindow::UpdateObjectBars_Impl 
(this=0x55b0bf82f570) at 
/home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
        #35 0x00007f0bb59ca573 in SfxDispatcher::Update_Impl 
(this=0x55b0c742b5b0, bForce=false) at 
/home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1123
        #36 0x00007f0bb6003921 in SfxBaseController::ConnectSfxFrame_Impl 
(this=0x55b0c7469930, i_eConnect=SfxBaseController::E_CONNECT) at 
/home/michi/development/git/libreoffice/sfx2/source/view/sfxbasecontroller.cxx:1207
        #37 0x00007f0bb6002ade in SfxBaseController::attachFrame 
(this=0x55b0c7469930, xFrame=uno::Reference to ((anonymous 
namespace)::XFrameImpl *) 0x55b0bfb36e40)
            at 
/home/michi/development/git/libreoffice/sfx2/source/view/sfxbasecontroller.cxx:531
        #38 0x00007f0bb5fd38b9 in utl::ConnectFrameControllerModel
            (xFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 
0x55b0bfb36e40, xController=uno::Reference to (SwXTextView *) 0x55b0c7469958, 
xModel=uno::Reference to (SwXTextDocument *) 0x55b0c71c0670)
            at include/unotools/fcm.hxx:57
        #39 0x00007f0bb5fcfec1 in (anonymous 
namespace)::SfxFrameLoader_Impl::impl_createDocumentView
            (i_rModel=uno::Reference to (SwXTextDocument *) 0x55b0c71c0670, 
i_rFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 
0x55b0bfb36e40, i_rViewFactoryArgs=..., i_rViewName="Default")
            at 
/home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:585
        #40 0x00007f0bb5fcd45c in (anonymous 
namespace)::SfxFrameLoader_Impl::load (this=0x55b0c22dc9f0, rArgs=uno::Sequence 
of length 9 = {...}, _rTargetFrame=uno::Reference to ((anonymous 
namespace)::XFrameImpl *) 0x55b0bfb36e40)
            at 
/home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:764
        #41 0x00007f0bb6bc2644 in framework::LoadEnv::impl_loadContent 
(this=0x55b0c1271ec8) at 
/home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:1180
        #42 0x00007f0bb6bbf7a5 in framework::LoadEnv::start 
(this=0x55b0c1271ec8) at 
/home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:415
        #43 0x00007f0bb6bbd452 in framework::LoadEnv::startLoading
            (this=0x55b0c1271ec8, sURL="private:factory/swriter", 
lMediaDescriptor=uno::Sequence of length 4 = {...}, xBaseFrame=uno::Reference 
to (framework::Desktop *) 0x55b0bbbee8c8, sTarget="_default", nSearchFlags=0, 
eFeature=(LoadEnvFeatu--Type <RET> for more, q to quit, c to continue without 
paging--
        res::WorkWithUI | LoadEnvFeatures::AllowContentHandler)) at 
/home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:311
        #44 0x00007f0bb6a56311 in framework::LoadDispatcher::impl_dispatch 
(this=0x55b0c1271e70, rURL=..., lArguments=uno::Sequence of length 4 = {...}, 
xListener=empty uno::Reference)
            at 
/home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:107
        #45 0x00007f0bb6a57071 in 
framework::LoadDispatcher::dispatchWithReturnValue (this=0x55b0c1271e70, 
rURL=..., lArguments=uno::Sequence of length 4 = {...})
            at 
/home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
        #46 0x00007f0bb6a57114 in non-virtual thunk to 
framework::LoadDispatcher::dispatchWithReturnValue(com::sun::star::util::URL 
const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> 
const&) ()
            at 
/home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
        #47 0x00007f0bb80110b0 in comphelper::SynchronousDispatch::dispatch 
(xStartPoint=uno::Reference to (framework::Desktop *) 0x55b0bbbee8b8, 
sURL="private:factory/swriter", sTarget="_default", lArguments=uno::Sequence of 
length 4 = {...})
            at 
/home/michi/development/git/libreoffice/comphelper/source/misc/synchronousdispatch.cxx:62
        #48 0x00007f0bb99757fd in 
desktop::DispatchWatcher::executeDispatchRequests (this=0x55b0c16043b0, 
aDispatchRequestsList=std::__debug::vector of length 1, capacity 1 = {...}, 
bNoTerminate=false)
            at 
/home/michi/development/git/libreoffice/desktop/source/app/dispatchwatcher.cxx:529
        #49 0x00007f0bb9993b5a in 
desktop::RequestHandler::ExecuteCmdLineRequests (aRequest=..., 
noTerminate=false) at 
/home/michi/development/git/libreoffice/desktop/source/app/officeipcthread.cxx:1347
        #50 0x00007f0bb992f196 in desktop::Desktop::OpenDefault () at 
/home/michi/development/git/libreoffice/desktop/source/app/app.cxx:2276
        #51 0x00007f0bb992e5cd in desktop::Desktop::OpenClients () at 
/home/michi/development/git/libreoffice/desktop/source/app/app.cxx:2220
        #52 0x00007f0bb992c3a3 in desktop::Desktop::OpenClients_Impl 
(this=0x7ffed3055280) at 
/home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1979
        #53 0x00007f0bb992aa3d in desktop::Desktop::LinkStubOpenClients_Impl 
(instance=0x7ffed3055280, data=0x0) at 
/home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1963
        #54 0x00007f0bb02ac091 in Link<void*, void>::Call (this=0x55b0bffb6ba8, 
data=0x0) at include/tools/link.hxx:105
        #55 0x00007f0bb02a8291 in ImplHandleUserEvent (pSVEvent=0x55b0bffb6ba0) 
at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2285
        #56 0x00007f0bb02a51ba in ImplWindowFrameProc (_pWindow=0x55b0bfc9e9b0, 
nEvent=SalEvent::UserEvent, pEvent=0x55b0bffb6ba0) at 
/home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2849
        #57 0x00007f0bb0e665bc in SalFrame::CallCallback (this=0x55b0bf7eaa50, 
nEvent=SalEvent::UserEvent, pEvent=0x55b0bffb6ba0) at vcl/inc/salframe.hxx:311
        #58 0x00007f0bb0e8ef5f in SalGenericDisplay::ProcessEvent 
(this=0x55b0baa61510, aEvent=...) at 
/home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
        #59 0x00007f0bb09aaddd in 
SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const 
(this=0x7ffed3053530) at 
/home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
        #60 0x00007f0bb09aacb6 in SalUserEventList::DispatchUserEvents 
(this=0x55b0baa61510, bHandleAllCurrentEvents=false) at 
/home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
        #61 0x00007f0bb0e8eeb5 in SalGenericDisplay::DispatchInternalEvent 
(this=0x55b0baa61510, bHandleAllCurrentEvent=false) at 
/home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
        #62 0x00007f0ba628536f in call_userEventFn (data=0x55b0ba8d13e0) at 
vcl/unx/gtk4/../gtk3/gtkdata.cxx:827
        #63 0x00007f0babd03d5f in ??? () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
        #64 0x00007f0babd05fd7 in ??? () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
        #65 0x00007f0babd06740 in g_main_context_iteration () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
        #66 0x00007f0ba62840ac in GtkSalData::Yield (this=0x55b0ba8d13e0, 
bWait=true, bHandleAllCurrentEvents=false) at 
vcl/unx/gtk4/../gtk3/gtkdata.cxx:405
        #67 0x00007f0ba6289863 in GtkInstance::DoYield (this=0x55b0ba8d1290, 
bWait=true, bHandleAllCurrentEvents=false) at 
vcl/unx/gtk4/../gtk3/gtkinst.cxx:439
        #68 0x00007f0bb0a75c06 in ImplYield (i_bWait=true, i_bAllEvents=false) 
at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
        #69 0x00007f0bb0a7551f in Application::Yield () at 
/home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488
        #70 0x00007f0bb0a75300 in Application::Execute () at 
/home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360
        #71 0x00007f0bb9928a19 in desktop::Desktop::Main (this=0x7ffed3055280) 
at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1679
        #72 0x00007f0bb0a970d6 in ImplSVMain () at 
/home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
        #73 0x00007f0bb0a98cc9 in SVMain () at 
/home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
        #74 0x00007f0bb99a22fa in soffice_main () at 
/home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
        #75 0x000055b09e4b3a6d in sal_main () at 
/home/michi/development/git/libreoffice/desktop/source/app/main.c:51
        #76 0x000055b09e4b3a47 in main (argc=2, argv=0x7ffed3055488) at 
/home/michi/development/git/libreoffice/desktop/source/app/main.c:49
    
    [1] https://docs.gtk.org/glib/gvariant-format-strings.html#pointers
    
    Change-Id: I87bd2840ac573426264d1dff2fd40ab292f09fc1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181666
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    (cherry picked from commit 38024bc9559d75696eb8c91ac5b0b41be0baa55f)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188096
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index db863e297c45..88b6e5b8db95 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -5739,7 +5739,7 @@ public:
             // clone the original item to query its label
             GMenuItem* pMenuItem = g_menu_item_new_from_model(aRes.first, 
aRes.second);
             char *pLabel = nullptr;
-            g_menu_item_get_attribute(pMenuItem, G_MENU_ATTRIBUTE_LABEL, "&s", 
&pLabel);
+            g_menu_item_get_attribute(pMenuItem, G_MENU_ATTRIBUTE_LABEL, "s", 
&pLabel);
             OUString aRet(pLabel, pLabel ? strlen(pLabel) : 0, 
RTL_TEXTENCODING_UTF8);
             g_free(pLabel);
             g_object_unref(pMenuItem);
commit 856196afdc7a4789b43caeace56c6f9ae2a08102
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Sat Aug 9 12:38:35 2025 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    cid#1660069 Division or modulo by float zero
    
    and
    
    cid#1660394 Division or modulo by float zero
    
    Change-Id: I10b0b100ff3fe99682bf4e0da6bc9ef3e356a996
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189257
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Tested-by: Jenkins
    (cherry picked from commit 56c55dceea7ddb15bf42e68d58a2eb23bb5bcd05)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189294
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/cui/source/tabpages/transfrm.cxx b/cui/source/tabpages/transfrm.cxx
index 8e573635aeb5..f2201636d38e 100644
--- a/cui/source/tabpages/transfrm.cxx
+++ b/cui/source/tabpages/transfrm.cxx
@@ -1020,18 +1020,23 @@ void SvxPositionSizeTabPage::Reset( const SfxItemSet*  )
 
     if ( !mbPageDisabled )
     {
-        pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_POS_X );
-        if ( pItem )
+        m_xMtrPosX->set_sensitive(fUIScale != 0.0);
+        m_xMtrPosY->set_sensitive(fUIScale != 0.0);
+        if (fUIScale != 0.0)
         {
-            const double fTmp((static_cast<const 
SfxInt32Item*>(pItem)->GetValue() - maAnchor.getX()) / fUIScale);
-            SetMetricValue(*m_xMtrPosX, basegfx::fround(fTmp), mePoolUnit);
-        }
+            pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_POS_X );
+            if ( pItem )
+            {
+                const double fTmp((static_cast<const 
SfxInt32Item*>(pItem)->GetValue() - maAnchor.getX()) / fUIScale);
+                SetMetricValue(*m_xMtrPosX, basegfx::fround(fTmp), mePoolUnit);
+            }
 
-        pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_POS_Y );
-        if ( pItem )
-        {
-            const double fTmp((static_cast<const 
SfxInt32Item*>(pItem)->GetValue() - maAnchor.getY()) / fUIScale);
-            SetMetricValue(*m_xMtrPosY, basegfx::fround(fTmp), mePoolUnit);
+            pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_POS_Y );
+            if ( pItem )
+            {
+                const double fTmp((static_cast<const 
SfxInt32Item*>(pItem)->GetValue() - maAnchor.getY()) / fUIScale);
+                SetMetricValue(*m_xMtrPosY, basegfx::fround(fTmp), mePoolUnit);
+            }
         }
 
         pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_PROTECT_POS );
@@ -1052,22 +1057,27 @@ void SvxPositionSizeTabPage::Reset( const SfxItemSet*  )
         ChangePosProtectHdl(*m_xTsbPosProtect);
     }
 
-    { // #i75273# set width
-        pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_WIDTH );
-        mfOldWidth = std::max( pItem ? static_cast<double>(static_cast<const 
SfxUInt32Item*>(pItem)->GetValue()) : 0.0, 1.0 );
-        double 
fTmpWidth((OutputDevice::LogicToLogic(static_cast<sal_Int32>(mfOldWidth), 
mePoolUnit, MapUnit::Map100thMM)) / fUIScale);
-        if (m_xMtrWidth->get_digits())
-            fTmpWidth *= pow(10.0, m_xMtrWidth->get_digits());
-        m_xMtrWidth->set_value(fTmpWidth, FieldUnit::MM_100TH);
-    }
+    m_xMtrWidth->set_sensitive(fUIScale != 0.0);
+    m_xMtrHeight->set_sensitive(fUIScale != 0.0);
+    if (fUIScale != 0.0)
+    {
+        { // #i75273# set width
+            pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_WIDTH );
+            mfOldWidth = std::max( pItem ? 
static_cast<double>(static_cast<const SfxUInt32Item*>(pItem)->GetValue()) : 
0.0, 1.0 );
+            double 
fTmpWidth((OutputDevice::LogicToLogic(static_cast<sal_Int32>(mfOldWidth), 
mePoolUnit, MapUnit::Map100thMM)) / fUIScale);
+            if (m_xMtrWidth->get_digits())
+                fTmpWidth *= pow(10.0, m_xMtrWidth->get_digits());
+            m_xMtrWidth->set_value(fTmpWidth, FieldUnit::MM_100TH);
+        }
 
-    { // #i75273# set height
-        pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_HEIGHT );
-        mfOldHeight = std::max( pItem ? static_cast<double>(static_cast<const 
SfxUInt32Item*>(pItem)->GetValue()) : 0.0, 1.0 );
-        double 
fTmpHeight((OutputDevice::LogicToLogic(static_cast<sal_Int32>(mfOldHeight), 
mePoolUnit, MapUnit::Map100thMM)) / fUIScale);
-        if (m_xMtrHeight->get_digits())
-            fTmpHeight *= pow(10.0, m_xMtrHeight->get_digits());
-        m_xMtrHeight->set_value(fTmpHeight, FieldUnit::MM_100TH);
+        { // #i75273# set height
+            pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_HEIGHT );
+            mfOldHeight = std::max( pItem ? 
static_cast<double>(static_cast<const SfxUInt32Item*>(pItem)->GetValue()) : 
0.0, 1.0 );
+            double 
fTmpHeight((OutputDevice::LogicToLogic(static_cast<sal_Int32>(mfOldHeight), 
mePoolUnit, MapUnit::Map100thMM)) / fUIScale);
+            if (m_xMtrHeight->get_digits())
+                fTmpHeight *= pow(10.0, m_xMtrHeight->get_digits());
+            m_xMtrHeight->set_value(fTmpHeight, FieldUnit::MM_100TH);
+        }
     }
 
     pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_PROTECT_SIZE );
commit 3c7c19c0f2453e3266a0f60ee61c5b8b8ef38d5b
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Sat Aug 9 16:06:16 2025 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    cid#1660804 Dereference null return value
    
    Change-Id: Ib53ec6473809dc99ada574827a378a0ab7b664d0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189264
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Tested-by: Jenkins
    (cherry picked from commit 1d3efa2ada37940200f3eed298c9f859a592ae77)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189290
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sw/source/core/undo/unattr.cxx b/sw/source/core/undo/unattr.cxx
index d8151669b068..f175e82ea65d 100644
--- a/sw/source/core/undo/unattr.cxx
+++ b/sw/source/core/undo/unattr.cxx
@@ -385,7 +385,7 @@ void SwUndoFormatAttr::SaveFlyAnchor( const SwFormat * 
pFormat, bool bSvDrwPt )
 {
     // Format is valid, otherwise you would not reach this point here
     if( bSvDrwPt ) {
-        if ( RES_DRAWFRMFMT == pFormat->Which() ) {
+        if (pFormat && RES_DRAWFRMFMT == pFormat->Which()) {
             Point aPt( static_cast<const 
SwFrameFormat*>(pFormat)->FindSdrObject()
                        ->GetRelativePos() );
             // store old value as attribute, to keep SwUndoFormatAttr small
commit 5245a5153c59d6fca9ae1522a154f3a286ed45dd
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Mon Aug 11 09:58:55 2025 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    null deref of pActualSection seen
    
     #0  0x00007b8ff1659933 in std::__uniq_ptr_impl<SwActualSection, 
std::default_delete<SwActualSection> >::reset (
         __p=<error reading variable: Cannot access memory at address 0x0>, 
this=0x7fff18bf8ff8)
         at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:201
     #1  std::unique_ptr<SwActualSection, std::default_delete<SwActualSection> 
>::reset (
         __p=<error reading variable: Cannot access memory at address 0x0>, 
this=0x7fff18bf8ff8)
         at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:501
     #2  InsertCnt_ (pLay=<optimized out>, pLay@entry=0x5fad9100, 
pDoc=pDoc@entry=0x5e955800, nIndex=..., bPages=bPages@entry=false,
         nEndIndex=..., nEndIndex@entry=..., pPrv=<optimized out>, 
eMode=<optimized out>)
         at sw/source/core/layout/frmtool.cxx:1915
     #3  0x00007b8ff165ac01 in MakeFrames (pDoc=pDoc@entry=0x5e955800, 
rSttIdx=..., rEndIdx=...)
         at sw/source/core/layout/frmtool.cxx:2211
     #4  0x00007b8ff1862f31 in SwUndoDelete::UndoImpl (this=<optimized out>, 
rContext=...)
         at sw/source/core/undo/undel.cxx:1184
     #5  0x00007b8ff18645aa in SwUndo::UndoWithContext (this=0x62c9c1e0, 
rContext=...)
         at sw/source/core/undo/undobj.cxx:225
     #6  0x00007b8ffecc6f91 in SfxUndoManager::ImplUndo (this=0x5ea06758, 
i_contextOrNull=0x7fff18bf9580)
         at svl/source/undo/undo.cxx:732
     #7  0x00007b8ffecc7489 in SfxUndoManager::UndoWithContext (this=<optimized 
out>, i_context=...)
         at svl/source/undo/undo.cxx:682
     #8  0x00007b8ff184ddd8 in sw::UndoManager::impl_DoUndoRedo 
(this=0x5ea06750, undoOrRedo=sw::UndoManager::UndoOrRedoType::Undo,
         nUndoOffset=<optimized out>) at sw/source/core/undo/docundo.cxx:700
     #9  0x00007b8ff1591a3b in SwEditShell::Undo (this=this@entry=0x5eaf4900, 
nCount=nCount@entry=40, nOffset=nOffset@entry=0)
         at sw/source/core/edit/edundo.cxx:143
     #10 0x00007b8ff1f58262 in SwWrtShell::Do (this=this@entry=0x5eaf4900, 
eDoType=eDoType@entry=SwWrtShell::UNDO,
         nCnt=nCnt@entry=40, nOffset=<optimized out>) at 
sw/source/uibase/wrtsh/wrtundo.cxx:45
     #11 0x00007b8ff1d4934a in SwBaseShell::ExecUndo (this=<optimized out>, 
rReq=...)
         at sw/source/uibase/shells/basesh.cxx:669
     #12 0x00007b8ffe7fb3ef in SfxDispatcher::Call_Impl (this=0x5e9cb020, 
rShell=..., rSlot=..., rReq=..., bRecord=<optimized out>)
        at sfx2/source/control/dispatch.cxx:255
     #13 0x00007b8ffe802af7 in SfxDispatcher::Execute (this=0x5e9cb020, 
nSlot=<optimized out>,
         nCall=nCall@entry=SfxCallMode::SYNCHRON, 
pArgs=pArgs@entry=0x7fff18bf9ca0, 
pInternalArgs=pInternalArgs@entry=0x7fff18bf9c30,
         nModi=0) at sfx2/source/control/dispatch.cxx:813
    
    Change-Id: I3e3bd43f853521163581a7e2d575c1ebe7dc2bfb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189352
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit 4d48d43a68b5cdda15092d0ae9b25d48bce6d1de)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189406
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sw/source/core/layout/frmtool.cxx 
b/sw/source/core/layout/frmtool.cxx
index d4a62e26e105..64b937cba693 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -1909,11 +1909,14 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc *pDoc,
                 continue; // skip it
             }
             assert(pActualSection && "Section end without section start?");
-            assert(pActualSection->GetSectionNode() == 
pNd->StartOfSectionNode());
 
             //Close the section, where appropriate activate the surrounding
             //section again.
-            pActualSection.reset(pActualSection->GetUpper());
+            if (pActualSection)
+            {
+                assert(pActualSection->GetSectionNode() == 
pNd->StartOfSectionNode());
+                pActualSection.reset(pActualSection->GetUpper());
+            }
             pLay = pLay->FindSctFrame();
             if ( pActualSection )
             {
commit 7f76868406cbdbdf71ef888825d209e54825827f
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Mon Aug 11 08:35:56 2025 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    cid#1659737 Dereference after null check
    
    Change-Id: I2a3da97e7a9bceedb3b9940d5625010ab215fdaf
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189334
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit 1313be884c4ded639a5f53694c82a1cf2e77fe70)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189404
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sw/source/uibase/dbui/dbmgr.cxx b/sw/source/uibase/dbui/dbmgr.cxx
index 022104934d8c..0fb2a04e2674 100644
--- a/sw/source/uibase/dbui/dbmgr.cxx
+++ b/sw/source/uibase/dbui/dbmgr.cxx
@@ -1329,7 +1329,9 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell,
                     sPrefix = aEntry.GetMainURL( 
INetURLObject::DecodeMechanism::NONE );
                 }
 
-                OUString 
sExt(comphelper::string::stripStart(pStoreToFilter->GetDefaultExtension(), 
'*'));
+                OUString sExt;
+                if (pStoreToFilter)
+                    sExt = 
comphelper::string::stripStart(pStoreToFilter->GetDefaultExtension(), '*');
                 aTempFile.reset( new utl::TempFileNamed(sLeading, 
sColumnData.isEmpty(), sExt, &sPrefix, true) );
                 if( !aTempFile->IsValid() )
                 {
commit ea5241f3639f8fae39d0222ad16a225a9d68b810
Author:     Oliver Specht <oliver.spe...@cib.de>
AuthorDate: Tue Aug 12 07:41:49 2025 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    tdf#164676 fix modify handler in variables tab page
    
    Change-Id: Ifb5e71bd14b7938d714873616dd63794e8e1d87b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189393
    Tested-by: Jenkins
    Reviewed-by: Oliver Specht <oliver.spe...@cib.de>
    (cherry picked from commit 2081fc359b25b7e4262880cccf7551a4632b3b35)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189420
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    (cherry picked from commit 1ae15f53c03c966776c46ce4dc87aafea751337e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189428

diff --git a/sw/source/ui/fldui/fldvar.cxx b/sw/source/ui/fldui/fldvar.cxx
index 63593c9b3077..71e588b17253 100644
--- a/sw/source/ui/fldui/fldvar.cxx
+++ b/sw/source/ui/fldui/fldvar.cxx
@@ -160,6 +160,7 @@ void SwFieldVarPage::Reset(const SfxItemSet* )
     m_xFormatLB->connect_row_activated(LINK(this, SwFieldVarPage, 
TreeViewInsertHdl));
     m_xNumFormatLB->connect_row_activated(LINK(this, SwFieldVarPage, 
TreeViewInsertHdl));
     m_xNameED->connect_changed(LINK(this, SwFieldVarPage, ModifyHdl));
+    m_xValueED->connect_changed(LINK(this, SwFieldVarPage, ModifyValueHdl));
     m_xNewPB->connect_clicked(LINK(this, SwFieldVarPage, TBClickHdl));
     m_xDelPB->connect_clicked(LINK(this, SwFieldVarPage, TBClickHdl));
     m_xChapterLevelLB->connect_changed(LINK(this, SwFieldVarPage, ChapterHdl));
@@ -831,6 +832,11 @@ void SwFieldVarPage::FillFormatLB(SwFieldTypesEnum nTypeId)
 }
 
 // Modify
+IMPL_LINK_NOARG(SwFieldVarPage, ModifyValueHdl, weld::TextView&, void)
+{
+    ModifyHdl(*m_xNameED);    // apply/insert/delete status update
+}
+
 IMPL_LINK_NOARG(SwFieldVarPage, ModifyHdl, weld::Entry&, void)
 {
     OUString sValue(m_xValueED->get_text());
diff --git a/sw/source/ui/fldui/fldvar.hxx b/sw/source/ui/fldui/fldvar.hxx
index 3aabb8f4e6e3..a478224bd804 100644
--- a/sw/source/ui/fldui/fldvar.hxx
+++ b/sw/source/ui/fldui/fldvar.hxx
@@ -56,6 +56,7 @@ class SwFieldVarPage : public SwFieldPage
     DECL_LINK( TypeHdl, weld::TreeView&, void );
     DECL_LINK( SubTypeListBoxHdl, weld::TreeView&, void );
     DECL_LINK( ModifyHdl, weld::Entry&, void );
+    DECL_LINK( ModifyValueHdl, weld::TextView&, void );
     DECL_LINK( TBClickHdl, weld::Button&, void );
     DECL_LINK( ChapterHdl, weld::ComboBox&, void );
     DECL_LINK( SeparatorHdl, weld::Entry&, void );
commit e8baccfedfc6fc852db02a84bdfaecc7022657d5
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Sat Aug 9 16:04:38 2025 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    cid#1660818 Dereference null return value
    
    Change-Id: Iee0004db9ad48e8753c5570fe6c8ebc31b98fd1c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189263
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit 39f512b4e384b39730a637392ff48897eee21331)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189292
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sw/source/core/edit/edsect.cxx b/sw/source/core/edit/edsect.cxx
index f5af17b48933..49698290666d 100644
--- a/sw/source/core/edit/edsect.cxx
+++ b/sw/source/core/edit/edsect.cxx
@@ -338,7 +338,7 @@ static const SwNode* lcl_SpecialInsertNode(const 
SwPosition* pCurrentPos)
     }
     if(pInnermostNode != nullptr)
     {
-        bool bIsProtected = pInnermostNode->IsProtect();
+        bool bCanModify = !pInnermostNode->IsProtect();
 
         //special case - ToxSection
         // - in this case the inner section could be tox header
@@ -354,7 +354,7 @@ static const SwNode* lcl_SpecialInsertNode(const 
SwPosition* pCurrentPos)
                 if (const SwSection* pSectionParent = pSection->GetParent())
                     pInnermostNode = 
pSectionParent->GetFormat()->GetSectionNode();
             }
-            bIsProtected = static_cast<const 
SwSectionNode*>(pInnermostNode)->IsInProtectSect();
+            bCanModify = pInnermostNode && !static_cast<const 
SwSectionNode*>(pInnermostNode)->IsInProtectSect();
         }
 
         // The previous version had a check to skip empty read-only sections. 
Those
@@ -362,7 +362,7 @@ static const SwNode* lcl_SpecialInsertNode(const 
SwPosition* pCurrentPos)
         // inside a protected area.
 
         // Now, pInnermostNode is NULL or the innermost section or table node.
-        if(!bIsProtected)
+        if (bCanModify)
         {
             OSL_ENSURE( pInnermostNode->IsTableNode() ||
                         pInnermostNode->IsSectionNode(), "wrong node found" );
commit 946621e47299e9d97c801de5437822f9a517c332
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Thu Aug 7 00:52:22 2025 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    libffi: upgrade to 3.5.2
    
    Downloaded from 
https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz
    
    Change-Id: I38f09c9821b13773bc816afc2d5f027fdf4b7964
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189030
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Tested-by: Jenkins
    (cherry picked from commit ed0414c4b8995cb62d577e9f1de5647660e597cf)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189038
    Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index 284d1359c7b0..48122018f056 100644
--- a/download.lst
+++ b/download.lst
@@ -492,8 +492,8 @@ LIBEXTTEXTCAT_TARBALL := libexttextcat-3.4.7.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBFFI_SHA256SUM := 
f99eb68a67c7d54866b7706af245e87ba060d419a062474b456d3bc8d4abdbd1
-LIBFFI_TARBALL := libffi-3.5.1.tar.gz
+LIBFFI_SHA256SUM := 
f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc
+LIBFFI_TARBALL := libffi-3.5.2.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
commit d4e4ffb80895018147a98e67b578491ee76b3684
Author:     Markus Mohrhard <markus.mohrh...@googlemail.com>
AuthorDate: Sat Jul 19 15:13:19 2025 +0800
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    tdf#164014: export value filters through the value property to ODS
    
    Change-Id: Ia6f8a2d65d1f90488ae1c8d2ca5bb48fc772464d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188061
    Tested-by: Jenkins
    Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com>
    (cherry picked from commit 02431246070d3468a0360b212f96a4ea75cac52c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188701
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    (cherry picked from commit b3715bd480b44dfedb48b5f3a6ce6a5e2f3d431e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189212

diff --git a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx 
b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
index 5089bea2ca6b..7310a5a83097 100644
--- a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
+++ b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
@@ -474,7 +474,7 @@ private:
             else
             {
                 mrExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DATA_TYPE, 
XML_NUMBER);
-                mrExport.AddAttribute(XML_NAMESPACE_TABLE, XML_VALUE, 
rItem.maString.getString());
+                mrExport.AddAttribute(XML_NAMESPACE_TABLE, XML_VALUE, 
OUString::number(rItem.mfVal));
             }
 
             mrExport.AddAttribute(XML_NAMESPACE_TABLE, XML_OPERATOR, 
getOperatorXML(rEntry, eSearchType));
commit 0c80aee57fb16a743946ddd5d25c106e97993458
Author:     Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
AuthorDate: Fri Aug 8 15:33:34 2025 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Wed Aug 20 15:35:12 2025 +0200

    update credits
    
    Change-Id: I94a8fbf4ac62d9e308b07b1e091059ff412ba80a
    (cherry picked from commit 2950c046b3bc737f28b638fb25f9101c9117f1cd)

diff --git a/readlicense_oo/license/CREDITS.fodt 
b/readlicense_oo/license/CREDITS.fodt
index 16c1cbc45e93..712383b3e40b 100644
--- a/readlicense_oo/license/CREDITS.fodt
+++ b/readlicense_oo/license/CREDITS.fodt
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <office:document xmlns:css3t="http://www.w3.org/TR/css3-text/"; 
xmlns:grddl="http://www.w3.org/2003/g/data-view#"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xforms="http://www.w3.org/2002/xforms"; 
xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" 
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 
xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:ooow="http://openoffice.org/2004/writer"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:drawooo="http://openoffice.org/2010/draw"; 
xmlns:oooc="http://openoffice.org/2004/calc"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns:c
 alcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" 
xmlns:tableooo="http://openoffice.org/2009/table"; 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:rpt="http://openoffice.org/2005/report"; 
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
 xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 
xmlns:officeooo="http://openoffice.org/2009/office"; 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:
 meta:1.0" 
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
 office:version="1.4" office:mimetype="application/vnd.oasis.opendocument.text">
- <office:meta><dc:title>Credits » 
LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits
 for the LibreOffice 
development/coding.</dc:description><meta:generator>LibreOffice/25.2.4.3$Linux_X86_64
 
LibreOffice_project/33e196637044ead23f5c3226cde09b47731f7e27</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic
 meta:table-count="4" meta:image-count="1" meta:object-count="0" 
meta:page-count="2" meta:paragraph-count="4989" meta:word-count="18583" 
meta:character-count="134710" 
meta:non-whitespace-character-count="118166"/><meta:user-defined 
meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
+ <office:meta><dc:title>Credits » 
LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits
 for the LibreOffice 
development/coding.</dc:description><meta:generator>LibreOffice/25.2.5.2$Linux_X86_64
 
LibreOffice_project/03d19516eb2e1dd5d4ccd751a0d6f35f35e08022</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic
 meta:table-count="5" meta:image-count="1" meta:object-count="0" 
meta:page-count="2" meta:paragraph-count="5132" meta:word-count="19381" 
meta:character-count="140460" 
meta:non-whitespace-character-count="123258"/><meta:user-defined 
meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
  <office:settings>
   <config:config-item-set config:name="ooo:view-settings">
-   <config:config-item config:name="ViewAreaTop" 
config:type="long">3226</config:config-item>
+   <config:config-item config:name="ViewAreaTop" 
config:type="long">3212</config:config-item>
    <config:config-item config:name="ViewAreaLeft" 
config:type="long">501</config:config-item>
-   <config:config-item config:name="ViewAreaWidth" 
config:type="long">26813</config:config-item>
-   <config:config-item config:name="ViewAreaHeight" 
config:type="long">24837</config:config-item>
+   <config:config-item config:name="ViewAreaWidth" 
config:type="long">26866</config:config-item>
+   <config:config-item config:name="ViewAreaHeight" 
config:type="long">24890</config:config-item>
    <config:config-item config:name="ShowRedlineChanges" 
config:type="boolean">true</config:config-item>
    <config:config-item config:name="InBrowseMode" 
config:type="boolean">true</config:config-item>
    <config:config-item-map-indexed config:name="Views">
@@ -16,9 +16,9 @@
      <config:config-item config:name="ViewLeft" 
config:type="long">3323</config:config-item>
      <config:config-item config:name="ViewTop" 
config:type="long">3434</config:config-item>
      <config:config-item config:name="VisibleLeft" 
config:type="long">501</config:config-item>
-     <config:config-item config:name="VisibleTop" 
config:type="long">3226</config:config-item>
-     <config:config-item config:name="VisibleRight" 
config:type="long">27312</config:config-item>
-     <config:config-item config:name="VisibleBottom" 
config:type="long">28062</config:config-item>
+     <config:config-item config:name="VisibleTop" 
config:type="long">3212</config:config-item>
+     <config:config-item config:name="VisibleRight" 
config:type="long">27365</config:config-item>
+     <config:config-item config:name="VisibleBottom" 
config:type="long">28101</config:config-item>
      <config:config-item config:name="ZoomType" 
config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutColumns" 
config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutBookMode" 
config:type="boolean">false</config:config-item>
@@ -153,7 +153,7 @@
    <config:config-item config:name="UseOldPrinterMetrics" 
config:type="boolean">false</config:config-item>
    <config:config-item config:name="RedlineProtectionKey" 
config:type="base64Binary"/>
    <config:config-item config:name="TabsRelativeToIndent" 
config:type="boolean">true</config:config-item>
-   <config:config-item config:name="Rsid" 
config:type="int">14654974</config:config-item>
+   <config:config-item config:name="Rsid" 
config:type="int">14771612</config:config-item>
    <config:config-item config:name="UpdateFromTemplate" 
config:type="boolean">true</config:config-item>
    <config:config-item config:name="ProtectForm" 
config:type="boolean">false</config:config-item>
    <config:config-item config:name="MsWordCompMinLineHeightByFly" 
config:type="boolean">false</config:config-item>
@@ -182,7 +182,7 @@
  <office:styles>
   <style:default-style style:family="graphic">
    <style:graphic-properties svg:stroke-color="#3465a4" 
draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" 
draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" 
draw:start-line-spacing-vertical="0.283cm" 
draw:end-line-spacing-horizontal="0.283cm" 
draw:end-line-spacing-vertical="0.283cm" style:writing-mode="lr-tb" 
style:flow-with-text="true"/>
-   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" loext:tab-stop-distance="0cm" 
style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" loext:tab-stop-distance="0cm" 
style:font-independent-line-spacing="false">
     <style:tab-stops/>
    </style:paragraph-properties>
    <style:text-properties style:use-window-font-color="true" 
loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" 
fo:language="hu" fo:country="HU" style:letter-kerning="true" 
style:font-name-asian="SimSun" style:font-size-asian="12pt" 
style:language-asian="zh" style:country-asian="CN" 
style:font-name-complex="Mangal1" style:font-size-complex="12pt" 
style:language-complex="hi" style:country-complex="IN"/>
@@ -376,24 +376,24 @@
  </office:styles>
  <office:automatic-styles>
   <style:style style:name="Tabelle1" style:family="table">
-   <style:table-properties style:width="26.531cm" table:align="left"/>
+   <style:table-properties style:width="26.584cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle1.A" style:family="table-column">
    <style:table-column-properties style:column-width="6.886cm"/>
   </style:style>
   <style:style style:name="Tabelle1.B" style:family="table-column">
-   <style:table-column-properties style:column-width="6.719cm"/>
+   <style:table-column-properties style:column-width="6.184cm"/>
   </style:style>
   <style:style style:name="Tabelle1.C" style:family="table-column">
    <style:table-column-properties style:column-width="6.717cm"/>
   </style:style>
   <style:style style:name="Tabelle1.D" style:family="table-column">
-   <style:table-column-properties style:column-width="6.209cm"/>
+   <style:table-column-properties style:column-width="6.796cm"/>
   </style:style>
   <style:style style:name="Tabelle1.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" 
fo:padding="0.049cm" fo:border="none"/>
   </style:style>
-  <style:style style:name="Tabelle1.B490" style:family="table-cell">
+  <style:style style:name="Tabelle1.C492" style:family="table-cell">
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="Tabelle2" style:family="table">
@@ -414,49 +414,67 @@
   <style:style style:name="Tabelle2.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" 
fo:padding="0.049cm" fo:border="none"/>
   </style:style>
-  <style:style style:name="Tabelle2.D9" style:family="table-cell">
-   <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
-  </style:style>
   <style:style style:name="Tabelle3" style:family="table">
-   <style:table-properties style:width="16.907cm" table:align="left"/>
+   <style:table-properties style:width="17.941cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle3.A" style:family="table-column">
-   <style:table-column-properties style:column-width="3.881cm"/>
+   <style:table-column-properties style:column-width="3.852cm"/>
   </style:style>
   <style:style style:name="Tabelle3.B" style:family="table-column">
-   <style:table-column-properties style:column-width="4.867cm"/>
+   <style:table-column-properties style:column-width="3.826cm"/>
   </style:style>
   <style:style style:name="Tabelle3.C" style:family="table-column">
-   <style:table-column-properties style:column-width="4.255cm"/>
+   <style:table-column-properties style:column-width="6.193cm"/>
   </style:style>
   <style:style style:name="Tabelle3.D" style:family="table-column">
-   <style:table-column-properties style:column-width="3.905cm"/>
+   <style:table-column-properties style:column-width="4.069cm"/>
   </style:style>
   <style:style style:name="Tabelle3.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" 
fo:padding="0.049cm" fo:border="none"/>
   </style:style>
-  <style:style style:name="Tabelle3.B3" style:family="table-cell">
+  <style:style style:name="Tabelle3.C33" style:family="table-cell">
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="Tabelle4" style:family="table">
-   <style:table-properties style:width="26.531cm" table:align="left"/>
+   <style:table-properties style:width="16.907cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle4.A" style:family="table-column">
-   <style:table-column-properties style:column-width="5.405cm"/>
+   <style:table-column-properties style:column-width="3.881cm"/>
   </style:style>
   <style:style style:name="Tabelle4.B" style:family="table-column">
-   <style:table-column-properties style:column-width="7.451cm"/>
+   <style:table-column-properties style:column-width="4.867cm"/>
   </style:style>
   <style:style style:name="Tabelle4.C" style:family="table-column">
-   <style:table-column-properties style:column-width="5.158cm"/>
+   <style:table-column-properties style:column-width="4.255cm"/>
   </style:style>
   <style:style style:name="Tabelle4.D" style:family="table-column">
-   <style:table-column-properties style:column-width="8.518cm"/>
+   <style:table-column-properties style:column-width="3.905cm"/>
   </style:style>
   <style:style style:name="Tabelle4.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" 
fo:padding="0.049cm" fo:border="none"/>
   </style:style>
-  <style:style style:name="Tabelle4.C744" style:family="table-cell">
+  <style:style style:name="Tabelle4.B3" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle5" style:family="table">
+   <style:table-properties style:width="26.584cm" table:align="left"/>
+  </style:style>
+  <style:style style:name="Tabelle5.A" style:family="table-column">
+   <style:table-column-properties style:column-width="7.507cm"/>
+  </style:style>
+  <style:style style:name="Tabelle5.B" style:family="table-column">
+   <style:table-column-properties style:column-width="6.204cm"/>
+  </style:style>
+  <style:style style:name="Tabelle5.C" style:family="table-column">
+   <style:table-column-properties style:column-width="7.396cm"/>
+  </style:style>
+  <style:style style:name="Tabelle5.D" style:family="table-column">
+   <style:table-column-properties style:column-width="5.477cm"/>
+  </style:style>
+  <style:style style:name="Tabelle5.A1" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="middle" 
fo:padding="0.049cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle5.B745" style:family="table-cell">
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="P1" style:family="paragraph" 
style:parent-style-name="Heading_20_1" style:master-page-name="HTML">
@@ -841,7 +859,7 @@
    </draw:frame>
    <text:section text:style-name="Sect1" text:name="BgContainer">
     <text:p text:style-name="P1"><text:span 
text:style-name="T1">Credits</text:span></text:p>
-    <text:p text:style-name="Text_20_body">2087 individuals contributed to 
OpenOffice.org (and whose contributions were imported into LibreOffice) or 
LibreOffice until 2025-07-11 12:45:34.</text:p>
+    <text:p text:style-name="Text_20_body">2096 individuals contributed to 
OpenOffice.org (and whose contributions were imported into LibreOffice) or 
LibreOffice until 2025-08-08 15:22:15.</text:p>
     <text:p text:style-name="Text_20_body"><text:span 
text:style-name="T2">*</text:span> marks developers whose first contributions 
happened after 2010-09-28.</text:p>
     <text:h text:style-name="P2" text:outline-level="2">Developers committing 
code since 2010-09-28</text:h>
     <table:table table:name="Tabelle1" table:style-name="Tabelle1">
@@ -854,7 +872,7 @@
        <text:p text:style-name="Table_20_Contents">Ruediger 
Timm<text:line-break/>Commits: 82464<text:line-break/>Joined: 
2000-10-10</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Caolán 
McNamara<text:line-break/>Commits: 36726<text:line-break/>Joined: 
2000-10-10</text:p>
+       <text:p text:style-name="Table_20_Contents">Caolán 
McNamara<text:line-break/>Commits: 36913<text:line-break/>Joined: 
2000-10-10</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Kurt 
Zenker<text:line-break/>Commits: 31752<text:line-break/>Joined: 
2000-09-25</text:p>
@@ -871,15 +889,15 @@
        <text:p text:style-name="Table_20_Contents">Vladimir 
Glazunov<text:line-break/>Commits: 25434<text:line-break/>Joined: 
2000-12-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Stephan 
Bergmann<text:line-break/>Commits: 21523<text:line-break/>Joined: 
2000-10-04</text:p>
+       <text:p text:style-name="Table_20_Contents">Stephan 
Bergmann<text:line-break/>Commits: 21525<text:line-break/>Joined: 
2000-10-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Noel Grandin<text:line-break/>Commits: 
20080<text:line-break/>Joined: <text:span 
text:style-name="T3">2011-12-12</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Noel Grandin<text:line-break/>Commits: 
20206<text:line-break/>Joined: <text:span 
text:style-name="T3">2011-12-12</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Miklos 
Vajna<text:line-break/>Commits: 10273<text:line-break/>Joined: 
2010-07-29</text:p>
+       <text:p text:style-name="Table_20_Contents">Miklos 
Vajna<text:line-break/>Commits: 10289<text:line-break/>Joined: 
2010-07-29</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ivo 
Hinkelmann<text:line-break/>Commits: 9480<text:line-break/>Joined: 
2002-09-09</text:p>
@@ -893,13 +911,13 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Kohei 
Yoshida<text:line-break/>Commits: 5572<text:line-break/>Joined: 
2009-06-19</text:p>
+       <text:p text:style-name="Table_20_Contents">Kohei 
Yoshida<text:line-break/>Commits: 5576<text:line-break/>Joined: 
2009-06-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Eike 
Rathke<text:line-break/>Commits: 5395<text:line-break/>Joined: 
2000-10-11</text:p>
+       <text:p text:style-name="Table_20_Contents">Eike 
Rathke<text:line-break/>Commits: 5396<text:line-break/>Joined: 
2000-10-11</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Markus Mohrhard<text:line-break/>Commits: 
5203<text:line-break/>Joined: <text:span 
text:style-name="T3">2011-03-17</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Markus Mohrhard<text:line-break/>Commits: 
5212<text:line-break/>Joined: <text:span 
text:style-name="T3">2011-03-17</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Frank Schoenheit 
[fs]<text:line-break/>Commits: 5008<text:line-break/>Joined: 2000-09-19</text:p>
@@ -907,27 +925,27 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Andrea Gelmini<text:line-break/>Commits: 
4431<text:line-break/>Joined: <text:span 
text:style-name="T3">2014-10-30</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Andrea Gelmini<text:line-break/>Commits: 
4444<text:line-break/>Joined: <text:span 
text:style-name="T3">2014-10-30</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Mike Kaganski<text:line-break/>Commits: 
4212<text:line-break/>Joined: <text:span 
text:style-name="T3">2015-04-26</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Mike Kaganski<text:line-break/>Commits: 
4296<text:line-break/>Joined: <text:span 
text:style-name="T3">2015-04-26</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Julien Nabet<text:line-break/>Commits: 
3997<text:line-break/>Joined: <text:span 
text:style-name="T3">2010-11-04</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Julien Nabet<text:line-break/>Commits: 
4002<text:line-break/>Joined: <text:span 
text:style-name="T3">2010-11-04</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Xisco Fauli<text:line-break/>Commits: 
3715<text:line-break/>Joined: <text:span 
text:style-name="T3">2011-02-06</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Xisco Fauli<text:line-break/>Commits: 
3733<text:line-break/>Joined: <text:span 
text:style-name="T3">2011-02-06</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 
3687<text:line-break/>Joined: <text:span 
text:style-name="T3">2012-06-02</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 
3696<text:line-break/>Joined: <text:span 
text:style-name="T3">2012-06-02</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">David 
Tardon<text:line-break/>Commits: 3648<text:line-break/>Joined: 
2009-11-12</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Michael Weghorn<text:line-break/>Commits: 
3285<text:line-break/>Joined: <text:span 
text:style-name="T3">2014-09-10</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Michael Weghorn<text:line-break/>Commits: 
3587<text:line-break/>Joined: <text:span 
text:style-name="T3">2014-09-10</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Luboš 
Luňák<text:line-break/>Commits: 3201<text:line-break/>Joined: 
2010-09-21</text:p>
@@ -944,7 +962,7 @@
        <text:p text:style-name="Table_20_Contents">Oliver 
Specht<text:line-break/>Commits: 2696<text:line-break/>Joined: 
2000-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Jan 
Holesovsky<text:line-break/>Commits: 2672<text:line-break/>Joined: 
2009-06-23</text:p>
+       <text:p text:style-name="Table_20_Contents">Jan 
Holesovsky<text:line-break/>Commits: 2673<text:line-break/>Joined: 
2009-06-23</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -958,7 +976,7 @@
        <text:p text:style-name="Table_20_Contents">Bjoern 
Michaelsen<text:line-break/>Commits: 2510<text:line-break/>Joined: 
2009-10-14</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Olivier Hallot<text:line-break/>Commits: 
2438<text:line-break/>Joined: <text:span 
text:style-name="T3">2010-10-25</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Olivier Hallot<text:line-break/>Commits: 
2450<text:line-break/>Joined: <text:span 
text:style-name="T3">2010-10-25</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -972,7 +990,7 @@
        <text:p text:style-name="Table_20_Contents">Philipp Lohmann 
[pl]<text:line-break/>Commits: 2089<text:line-break/>Joined: 2000-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Andras Timar<text:line-break/>Commits: 
2068<text:line-break/>Joined: <text:span 
text:style-name="T3">2010-10-02</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Andras Timar<text:line-break/>Commits: 
2074<text:line-break/>Joined: <text:span 
text:style-name="T3">2010-10-02</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -986,7 +1004,7 @@
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Matúš Kukan<text:line-break/>Commits: 
1712<text:line-break/>Joined: <text:span 
text:style-name="T3">2011-04-06</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Christopher 
Sherlock<text:line-break/>Commits: 1570<text:line-break/>Joined: <text:span 
text:style-name="T3">2013-02-25</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Christopher 
Sherlock<text:line-break/>Commits: 1577<text:line-break/>Joined: <text:span 
text:style-name="T3">2013-02-25</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1000,7 +1018,7 @@
        <text:p text:style-name="Table_20_Contents">Thorsten 
Behrens<text:line-break/>Commits: 1442<text:line-break/>Joined: 
2001-04-25</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Christian 
Lohmaier<text:line-break/>Commits: 1428<text:line-break/>Joined: 
2008-06-01</text:p>
+       <text:p text:style-name="Table_20_Contents">Christian 
Lohmaier<text:line-break/>Commits: 1432<text:line-break/>Joined: 
2008-06-01</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1042,7 +1060,7 @@
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Lionel Elie Mamane<text:line-break/>Commits: 
1051<text:line-break/>Joined: <text:span 
text:style-name="T3">2011-01-15</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>László Németh<text:line-break/>Commits: 
1012<text:line-break/>Joined: <text:span 
text:style-name="T3">2010-09-29</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>László Németh<text:line-break/>Commits: 
1013<text:line-break/>Joined: <text:span 
text:style-name="T3">2010-09-29</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1056,7 +1074,7 @@
        <text:p text:style-name="Table_20_Contents">Noel 
Power<text:line-break/>Commits: 950<text:line-break/>Joined: 2002-09-24</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Khaled Hosny<text:line-break/>Commits: 
930<text:line-break/>Joined: <text:span 
text:style-name="T3">2011-01-28</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T2">*</text:span>Khaled Hosny<text:line-break/>Commits: 
931<text:line-break/>Joined: <text:span 
text:style-name="T3">2011-01-28</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1120,13 +1138,13 @@
        <text:p text:style-name="Table_20_Contents">Joerg Skottke 
[jsk]<text:line-break/>Commits: 678<text:line-break/>Joined: 2008-06-17</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-e 
... etc. - the rest is truncated

Reply via email to