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!");
