svl/source/numbers/zforscan.cxx |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

New commits:
commit 25209dbefbb21fcaa9bc00e7ad8ad064cea92e39
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Thu Aug 22 13:51:03 2024 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Sat Aug 31 21:41:08 2024 +0200

    cid#1607947 silence Overflowed array index write
    
    Change-Id: I35b8db34e722e700df2771da99d76d42fe2cada6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172640
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Tested-by: Jenkins

diff --git a/svl/source/numbers/zforscan.cxx b/svl/source/numbers/zforscan.cxx
index 08f6a8591ef5..272fb10ba4e8 100644
--- a/svl/source/numbers/zforscan.cxx
+++ b/svl/source/numbers/zforscan.cxx
@@ -1660,10 +1660,13 @@ bool ImpSvNumberformatScan::InsertSymbol( sal_uInt16 & 
nPos, svt::NfSymbolType e
             return false;
         }
         ++nStringsCnt;
-        for (size_t i = nStringsCnt; i > nPos; --i)
+        sal_uInt16 i = nStringsCnt;
+        while (i > nPos)
         {
-            nTypeArray[i] = nTypeArray[i-1];
-            sStrArray[i] = sStrArray[i-1];
+            sal_uInt16 nexti = o3tl::sanitizing_dec(i);
+            nTypeArray[i] = nTypeArray[nexti];
+            sStrArray[i] = sStrArray[nexti];
+            i = nexti;
         }
     }
     ++nResultStringsCnt;

Reply via email to