diff options
Diffstat (limited to 'external/icu')
-rw-r--r-- | external/icu/icu-ubsan.patch.0 | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/external/icu/icu-ubsan.patch.0 b/external/icu/icu-ubsan.patch.0 index 5f9e85f502eb..7268bb7ab06b 100644 --- a/external/icu/icu-ubsan.patch.0 +++ b/external/icu/icu-ubsan.patch.0 @@ -9,9 +9,24 @@ /* This array does not have two elements */ /* Array Size is actually fData->fHeader->fCatCount */ /* CAUTION: see RBBITableBuilder::getTableSize() */ +@@ -126,7 +126,7 @@ + uint32_t fRowLen; /* Length of a state table row, in bytes. */ + uint32_t fFlags; /* Option Flags for this state table */ + uint32_t fReserved; /* reserved */ +- char fTableData[4]; /* First RBBIStateTableRow begins here. */ ++ char fTableData[1]; /* First RBBIStateTableRow begins here. */ + /* (making it char[] simplifies ugly address */ + /* arithmetic for indexing variable length rows.) */ + }; --- source/common/rbbitblb.cpp +++ source/common/rbbitblb.cpp -@@ -1072,10 +1072,10 @@ +@@ -1067,15 +1067,15 @@ + return 0; + } + +- size = sizeof(RBBIStateTable) - 4; // The header, with no rows to the table. ++ size = offsetof(RBBIStateTable, fTableData); // The header, with no rows to the table. + numRows = fDStates->size(); numCols = fRB->fSetBuilder->getNumCharCategories(); |