sc/source/ui/dbgui/scuiasciiopt.cxx           |    2 +-
 sw/source/core/doc/DocumentRedlineManager.cxx |   20 ++++++++++++--------
 2 files changed, 13 insertions(+), 9 deletions(-)

New commits:
commit 98d80106a37399f6d2eca990fd3fd5412fc87fc2
Author:     Caolán McNamara <[email protected]>
AuthorDate: Sat Nov 9 19:44:12 2024 +0000
Commit:     Caolán McNamara <[email protected]>
CommitDate: Mon Nov 11 18:22:26 2024 +0100

    cid#1607376 Overflowed constant
    
    Change-Id: Ib02923e0c40e97fa7a22c7f68079df48baf3fcb9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176382
    Reviewed-by: Caolán McNamara <[email protected]>
    Tested-by: Jenkins

diff --git a/sc/source/ui/dbgui/scuiasciiopt.cxx 
b/sc/source/ui/dbgui/scuiasciiopt.cxx
index 37a81c077053..b35cf24ba7fb 100644
--- a/sc/source/ui/dbgui/scuiasciiopt.cxx
+++ b/sc/source/ui/dbgui/scuiasciiopt.cxx
@@ -630,7 +630,7 @@ bool ScImportAsciiDlg::GetLine( sal_uLong nLine, OUString 
&rText, sal_Unicode& r
             mnStreamPos = mpDatStream->Tell();
             mpRowPosArray[++mnRowPosCount] = mnStreamPos;
         } while (nLine >= mnRowPosCount && mpDatStream->good());
-        if (mpDatStream->eof() &&
+        if (mpDatStream->eof() && mnRowPosCount &&
                 mnStreamPos == mpRowPosArray[mnRowPosCount-1])
         {
             // the very end, not even an empty line read
commit 4d551b7234ebb02b8b1a837966b30990e18f0c0b
Author:     Caolán McNamara <[email protected]>
AuthorDate: Sat Nov 9 21:27:18 2024 +0000
Commit:     Caolán McNamara <[email protected]>
CommitDate: Mon Nov 11 18:22:14 2024 +0100

    cid#1607427 Overflowed constant
    
    and
    
    cid#1607919 Overflowed constant
    
    Change-Id: Ifad54a4aa6863e23ee9432d4faacf2a61b4d93e1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176379
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/source/core/doc/DocumentRedlineManager.cxx 
b/sw/source/core/doc/DocumentRedlineManager.cxx
index ed7978fc33e5..fc4b7d6859dc 100644
--- a/sw/source/core/doc/DocumentRedlineManager.cxx
+++ b/sw/source/core/doc/DocumentRedlineManager.cxx
@@ -2676,11 +2676,14 @@ bool DocumentRedlineManager::DeleteRedline( const 
SwPaM& rRange, bool bSaveInUnd
     auto [pStt, pEnd] = rRange.StartEnd(); // SwPosition*
     SwRedlineTable::size_type n = 0;
     GetRedline( *pStt, &n );
-    for( ; n < maRedlineTable.size() ; ++n )
+    while (n < maRedlineTable.size())
     {
         SwRangeRedline* pRedl = maRedlineTable[ n ];
         if( RedlineType::Any != nDelType && nDelType != pRedl->GetType() )
+        {
+            ++n;
             continue;
+        }
 
         auto [pRStt, pREnd] = pRedl->StartEnd(); // SwPosition*
         switch( ComparePosition( *pStt, *pEnd, *pRStt, *pREnd ) )
@@ -2688,7 +2691,7 @@ bool DocumentRedlineManager::DeleteRedline( const SwPaM& 
rRange, bool bSaveInUnd
         case SwComparePosition::Equal:
         case SwComparePosition::Outside:
             pRedl->InvalidateRange(SwRangeRedline::Invalidation::Remove);
-            maRedlineTable.DeleteAndDestroy( n-- );
+            maRedlineTable.DeleteAndDestroy( n );
             bChg = true;
             break;
 
@@ -2699,7 +2702,6 @@ bool DocumentRedlineManager::DeleteRedline( const SwPaM& 
rRange, bool bSaveInUnd
                 // re-insert
                 maRedlineTable.Remove( n );
                 maRedlineTable.Insert( pRedl );
-                --n;
             break;
 
         case SwComparePosition::OverlapBehind:
@@ -2711,8 +2713,9 @@ bool DocumentRedlineManager::DeleteRedline( const SwPaM& 
rRange, bool bSaveInUnd
                     // re-insert
                     maRedlineTable.Remove( n );
                     maRedlineTable.Insert( pRedl );
-                    --n;
                 }
+                else
+                    ++n;
             break;
 
         case SwComparePosition::Inside:
@@ -2726,7 +2729,6 @@ bool DocumentRedlineManager::DeleteRedline( const SwPaM& 
rRange, bool bSaveInUnd
                     // re-insert
                     maRedlineTable.Remove( n );
                     maRedlineTable.Insert( pRedl );
-                    --n;
                 }
                 else
                 {
@@ -2746,8 +2748,9 @@ bool DocumentRedlineManager::DeleteRedline( const SwPaM& 
rRange, bool bSaveInUnd
                         // re-insert
                         maRedlineTable.Remove( n );
                         maRedlineTable.Insert( pRedl );
-                        --n;
                     }
+                    else
+                        ++n;
                     if( pCpy )
                         maRedlineTable.Insert( pCpy );
                 }
@@ -2760,16 +2763,17 @@ bool DocumentRedlineManager::DeleteRedline( const 
SwPaM& rRange, bool bSaveInUnd
             if ( pRedl->HasMark() && *pRedl->GetMark() == *pRedl->GetPoint() )
             {
                 pRedl->InvalidateRange(SwRangeRedline::Invalidation::Remove);
-                maRedlineTable.DeleteAndDestroy( n-- );
+                maRedlineTable.DeleteAndDestroy( n );
                 bChg = true;
                 break;
             }
             [[fallthrough]];
 
         case SwComparePosition::Before:
-            n = maRedlineTable.size();
+            n = maRedlineTable.size() + 1;
             break;
         default:
+            ++n;
             break;
         }
     }

Reply via email to