[Libreoffice-commits] core.git: external/icu

Caolán McNamara caolanm at redhat.com
Thu Aug 28 07:53:22 PDT 2014


 external/icu/icu-ubsan.patch.0 |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

New commits:
commit 7890a7263f8a6740582bc58328c76613818fe2d5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Aug 28 15:51:10 2014 +0100

    update getTableSize (and fRowLen) for dodgy 2-based arithmetic
    
    Change-Id: I3787a46cf8662ed709534db85d724c17c21b90dd

diff --git a/external/icu/icu-ubsan.patch.0 b/external/icu/icu-ubsan.patch.0
index 01fc290..5f9e85f 100644
--- a/external/icu/icu-ubsan.patch.0
+++ b/external/icu/icu-ubsan.patch.0
@@ -9,6 +9,31 @@
                                      /*  This array does not have two elements             */
                                      /*    Array Size is actually fData->fHeader->fCatCount         */
                                      /*    CAUTION:  see RBBITableBuilder::getTableSize()  */
+--- source/common/rbbitblb.cpp
++++ source/common/rbbitblb.cpp
+@@ -1072,10 +1072,10 @@
+     numRows = fDStates->size();
+     numCols = fRB->fSetBuilder->getNumCharCategories();
+ 
+-    //  Note  The declaration of RBBIStateTableRow is for a table of two columns.
+-    //        Therefore we subtract two from numCols when determining
++    //  Note  The declaration of RBBIStateTableRow is for a table of one columns.
++    //        Therefore we subtract one from numCols when determining
+     //        how much storage to add to a row for the total columns.
+-    rowSize = sizeof(RBBIStateTableRow) + sizeof(uint16_t)*(numCols-2);
++    rowSize = sizeof(RBBIStateTableRow) + sizeof(uint16_t)*(numCols-1);
+     size   += numRows * rowSize;
+     return size;
+ }
+@@ -1105,7 +1105,7 @@
+     }
+ 
+     table->fRowLen    = sizeof(RBBIStateTableRow) +
+-                            sizeof(uint16_t) * (fRB->fSetBuilder->getNumCharCategories() - 2);
++                            sizeof(uint16_t) * (fRB->fSetBuilder->getNumCharCategories() - 1);
+     table->fNumStates = fDStates->size();
+     table->fFlags     = 0;
+     if (fRB->fLookAheadHardBreak) {
 --- source/common/ucmndata.h
 +++ source/common/ucmndata.h
 @@ -50,7 +50,7 @@


More information about the Libreoffice-commits mailing list