connectivity/source/drivers/dbase/dindexnode.cxx      |    4 -
 dbaccess/source/filter/xml/xmlDataSourceSetting.cxx   |   34 ++++++++++------
 reportdesign/source/filter/xml/xmlControlProperty.cxx |   37 +++++++++++-------
 3 files changed, 46 insertions(+), 29 deletions(-)

New commits:
commit fcd432494a6e760afbf2206dea3a1f07ffe92c03
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Aug 30 09:34:17 2024 +0100
Commit:     Caolán McNamara <[email protected]>
CommitDate: Sun Sep 1 15:55:04 2024 +0200

    cid#1607035 silence Overflowed integer argument
    
    Change-Id: Iddf32ee09c8cbc4a7f80c943a0e472f018881be5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172716
    Tested-by: Caolán McNamara <[email protected]>
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/connectivity/source/drivers/dbase/dindexnode.cxx 
b/connectivity/source/drivers/dbase/dindexnode.cxx
index 1e7add25e42f..6eb435765fa6 100644
--- a/connectivity/source/drivers/dbase/dindexnode.cxx
+++ b/connectivity/source/drivers/dbase/dindexnode.cxx
@@ -411,8 +411,8 @@ void ONDXPage::Delete(sal_uInt16 nNodePos)
         else
         {
             // merge with right neighbour
-            Merge(nParentNodePos + 1,((*aParent)[nParentNodePos + 
1].GetChild(&rIndex,aParent)));
-            nParentNodePos++;
+            nParentNodePos = o3tl::sanitizing_inc(nParentNodePos);
+            
Merge(nParentNodePos,((*aParent)[nParentNodePos].GetChild(&rIndex,aParent)));
         }
         if (HasParent() && !(*aParent)[nParentNodePos].HasChild())
             aParent->Delete(nParentNodePos);
commit 881f924e6bfc2ba6f22ea3d1199848095a1a2110
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Aug 30 09:32:07 2024 +0100
Commit:     Caolán McNamara <[email protected]>
CommitDate: Sun Sep 1 15:54:50 2024 +0200

    cid#1607430 Overflowed integer argument
    
    and
    
    cid#1606956 Overflowed integer argument
    
    Change-Id: Ie940530f1538a36ab995407bc0fe01386cd10367
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172715
    Tested-by: Caolán McNamara <[email protected]>
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx 
b/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx
index 9402bb399dca..57318d84e964 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx
@@ -169,20 +169,28 @@ Any OXMLDataSourceSetting::convertString(const 
css::uno::Type& _rExpectedType, c
         }
         break;
         case TypeClass_SHORT:       // sal_Int16
+        {   // it's a real int16 property
+            sal_Int32 nValue(0);
+            bool const bSuccess =
+                ::sax::Converter::convertNumber(nValue, _rReadCharacters,
+                                                SAL_MIN_INT16, SAL_MAX_INT16);
+            SAL_WARN_IF(!bSuccess, "dbaccess",
+                "OXMLDataSourceSetting::convertString: could not convert \""
+                << _rReadCharacters << "\" into a sal_Int16!");
+            aReturn <<= static_cast<sal_Int16>(nValue);
+            break;
+        }
         case TypeClass_LONG:        // sal_Int32
-            {   // it's a real int32/16 property
-                sal_Int32 nValue(0);
-                bool const bSuccess =
-                    ::sax::Converter::convertNumber(nValue, _rReadCharacters);
-                SAL_WARN_IF(!bSuccess, "dbaccess",
-                    "OXMLDataSourceSetting::convertString: could not convert 
\""
-                    << _rReadCharacters << "\" into an integer!");
-                if (TypeClass_SHORT == _rExpectedType.getTypeClass())
-                    aReturn <<= static_cast<sal_Int16>(nValue);
-                else
-                    aReturn <<= nValue;
-                break;
-            }
+        {   // it's a real int32 property
+            sal_Int32 nValue(0);
+            bool const bSuccess =
+                ::sax::Converter::convertNumber(nValue, _rReadCharacters);
+            SAL_WARN_IF(!bSuccess, "dbaccess",
+                "OXMLDataSourceSetting::convertString: could not convert \""
+                << _rReadCharacters << "\" into a sal_Int32!");
+            aReturn <<= nValue;
+            break;
+        }
         case TypeClass_HYPER:
         {
             OSL_FAIL("OXMLDataSourceSetting::convertString: 64-bit integers 
not implemented yet!");
diff --git a/reportdesign/source/filter/xml/xmlControlProperty.cxx 
b/reportdesign/source/filter/xml/xmlControlProperty.cxx
index 95415257a40d..e2b5203c079b 100644
--- a/reportdesign/source/filter/xml/xmlControlProperty.cxx
+++ b/reportdesign/source/filter/xml/xmlControlProperty.cxx
@@ -194,21 +194,30 @@ Any OXMLControlProperty::convertString(const 
css::uno::Type& _rExpectedType, con
         }
         break;
         case TypeClass_SHORT:       // sal_Int16
+        {   // it's a real int16 property
+            sal_Int32 nValue(0);
+            bool bSuccess =
+                ::sax::Converter::convertNumber(nValue, _rReadCharacters,
+                                                SAL_MIN_INT16, SAL_MAX_INT16);
+            OSL_ENSURE(bSuccess,
+                    OStringBuffer("OXMLControlProperty::convertString: could 
not convert \"" +
+                    OUStringToOString(_rReadCharacters, 
RTL_TEXTENCODING_ASCII_US) +
+                    "\" into a sal_Int16!").getStr());
+            aReturn <<= static_cast<sal_Int16>(nValue);
+            break;
+        }
         case TypeClass_LONG:        // sal_Int32
-            {   // it's a real int32/16 property
-                sal_Int32 nValue(0);
-                bool bSuccess =
-                    ::sax::Converter::convertNumber(nValue, _rReadCharacters);
-                OSL_ENSURE(bSuccess,
-                        OStringBuffer("OXMLControlProperty::convertString: 
could not convert \"" +
-                        OUStringToOString(_rReadCharacters, 
RTL_TEXTENCODING_ASCII_US) +
-                        "\" into an integer!").getStr());
-                if (TypeClass_SHORT == _rExpectedType.getTypeClass())
-                    aReturn <<= static_cast<sal_Int16>(nValue);
-                else
-                    aReturn <<= nValue;
-                break;
-            }
+        {   // it's a real int32 property
+            sal_Int32 nValue(0);
+            bool bSuccess =
+                ::sax::Converter::convertNumber(nValue, _rReadCharacters);
+            OSL_ENSURE(bSuccess,
+                    OStringBuffer("OXMLControlProperty::convertString: could 
not convert \"" +
+                    OUStringToOString(_rReadCharacters, 
RTL_TEXTENCODING_ASCII_US) +
+                    "\" into a sal_Int32!").getStr());
+            aReturn <<= nValue;
+            break;
+        }
         case TypeClass_HYPER:
         {
             OSL_FAIL("OXMLControlProperty::convertString: 64-bit integers not 
implemented yet!");

Reply via email to